Pagini recente » Cod sursa (job #663184) | Cod sursa (job #1178989) | Cod sursa (job #1183137) | Cod sursa (job #329004) | Cod sursa (job #496533)
Cod sursa(job #496533)
# 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){
int nr2;
point *qq,*q;
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->leg;
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;
}