Cod sursa(job #765465)
#include<cstdio>
#define N 1000001
typedef struct nod
{int info;
nod *urm;}Nod;
int n,y,i,x;
Nod *h[N];
int F(Nod *l,int y)
{for(Nod *p=l;p;p=p->urm)
if(p->info==y)
return 1;
return 0;}
void A(Nod *&l,int y)
{Nod *nou=new Nod;
nou->urm=l,nou->info=y,l=nou;}
void D(Nod *&l,int y)
{Nod *p=l,*q=l;
while(p&&p->info!=y)
q=p,p=p->urm;
if(p)
{if(q==p)
l=l->urm;
else
q->urm=p->urm;
delete p;}}
int main()
{freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{scanf("%d%d",&x,&y);
if(x==1)
{if(!F(h[y%N],y))
A(h[y%N],y);}
else
if(x==2)
{if(F(h[y%N],y))
D(h[y%N],y);}
else
printf("%d\n",F(h[y%N],y));}
return 0;}