Pagini recente » Cod sursa (job #546728) | Cod sursa (job #1127246) | Cod sursa (job #1318806) | Cod sursa (job #2921067) | Cod sursa (job #1528934)
#include<cstdio>
#define MOD 666013
struct nod{
int info;
nod* next;
};
nod* v[666013];
void adaug_x(nod*&prim,int nr){
int pp=0;
if(prim==NULL){
prim=new nod;
prim->info=nr;
prim->next=NULL;
}
else
if(prim->info==nr)
pp=1;
else{
nod*aux=prim;
while(aux->next!=NULL&&pp==0)
if(aux->next->info==nr)
pp=1;
else
aux=aux->next;
if(pp==0){
nod*aux=new nod;
aux->info=nr;
prim->next=aux;
}
}
}
void extrag_x(nod*&prim,int nr){
if(prim!=NULL)
if(prim->info==nr){
nod*aux=prim;
prim=prim->next;
delete(aux);
}
else{
nod*aux=prim;
while(aux->next!=NULL&&aux->next->info!=nr)
aux=aux->next;
if(aux->next!=NULL){
nod*aux1=aux->next;
aux->next=aux->next->next;
delete(aux1);
}
}
}
int gasit(nod*prim,int nr){
while(prim!=NULL)
if(prim->info==nr)
return 1;
return 0;
}
int main(){
int i,n,op,nr,j;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d%d",&op,&nr);
j=nr%MOD;
if(op==1)
adaug_x(v[j],nr);
if(op==2)
extrag_x(v[j],nr);
if(op==3)
printf("%d\n",gasit(v[j],nr));
}
return 0;
}