Pagini recente » Cod sursa (job #20304) | Cod sursa (job #1703488) | Cod sursa (job #3039052) | Cod sursa (job #865301) | Cod sursa (job #496538)
Cod sursa(job #496538)
# include <stdio.h>
# define p 666013
struct point
{
int inf;
point *leg;
};
point *a[666100];
int i,r,x,n;
inline void insert (int x)
{
int nr;
point *q,*t;
nr=x%p;
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 stergere(int x){
point *qq,*q;
int nr2=x%p;
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);
}
}
}
inline void afisare (int x)
{
int nr;
point *q;
nr=x%p;
q=a[nr];
bool ok=false;
while (q)
{
if (q->inf==x)
{
ok=true;
break;
}
q=(q->leg);
}
if (ok==true) printf ("1\n");
else printf ("0\n");
}
int main ()
{
freopen ("hashuri.in","r",stdin);
freopen ("hashuri.out","w",stdout);
scanf ("%d",&n);
for (i=1; i<=p; i++) a[i]=NULL;
for (i=1; i<=n; i++)
{
scanf ("%d",&r);
scanf ("%d",&x);
if (r==1)
{
insert (x);
}
else if (r==2)
{
stergere(x);
}
else if (r==3)
{
afisare(x);
}
}
return 0;
}