Pagini recente » Cod sursa (job #2625010) | Cod sursa (job #679769) | Cod sursa (job #330279) | Cod sursa (job #800710) | Cod sursa (job #496539)
Cod sursa(job #496539)
#include<stdio.h>
struct point{
int inf;
point *leg;
};
int tt,i,c,cc,n;
point *a[666100];
inline void inserare(int x){
int nr;
point *q,*t;
nr=x%666013;
q=a[nr];
while (q && q->inf!=x) q=q->leg;
if (!q){
t=new point;
t->inf=x;
t->leg=a[nr];
a[nr]=t;
}
}
inline void sterge(int x){
int nr2;
point *qq,*q;
nr2=x%666013;
q=a[nr2];
if (q==NULL) return;
else if (q->inf==x) {
a[nr2]=a[nr2]->leg;
delete(q);
}
else{
while (q &&q->inf!=x) q=q->leg;
if (q!=NULL){
qq=q;
q=q->leg;
delete(qq);
}
}
}
int cautare(int x){
int nr3;
point *q;
bool ok;
nr3=x%666013;
q=a[nr3];
ok=false;
while (q!=NULL){
if (q->inf==x) {
ok=true;
return(1);
break;
}
q=q->leg;
}
return(0);
}
int main(){
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for (i=0; i<=666013; i++) a[i]=NULL;
for (i=1; i<=n; i++){
scanf("%d%d",&c,&cc);
if (c==1){
inserare(cc);
}
else if (c==2){
sterge(cc);
}
else if (c==3) {
tt=cautare(cc);
printf("%d\n",tt);
}
}
return(0);
}