Pagini recente » Cod sursa (job #1877228) | Cod sursa (job #2373100) | Cod sursa (job #159860) | Cod sursa (job #2747099) | Cod sursa (job #245666)
Cod sursa(job #245666)
#include<stdio.h>
#define N 214365
#define w NULL
struct nod{
int info;
nod *adr;
};
nod *v[N],*p[N];
void init(){
for(int i=0;i<N;++i){
p[i]=new nod;
p[i]->adr=w;
v[i]=p[i];
}
}
void adauga(nod* &v,int x){
nod *aux=new nod;
aux->info=x;
aux->adr=w;
v->adr=aux;
v=aux;
}
nod *caut(nod *pr,int x){
while(pr->adr && pr->adr->info!=x)
pr=pr->adr;
if(pr->adr)
return pr;
return w;
}
void sterge(int nr,int x){
nod *pr=p[nr];
nod *r=caut(pr,x);
if(r==w)
return;
nod *aux=r->adr;
r->adr=aux->adr;
if(aux->adr==w)
v[nr]=r;
delete aux;
}
bool cauta(nod *pr,int x){
if(caut(pr,x))
return true;
return false;
}
void citire(){
int n,op,x;
init();
scanf("%d",&n);
while(n--){
scanf("%d%d",&op,&x);
if(op==1)
adauga(v[x%N],x);
if(op==2)
sterge(x%N,x);
if(op==3)
printf("%d\n",cauta(p[x%N],x));
}
}
int main(){
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
citire();
fclose(stdin);
fclose(stdout);
return 0;
}