Cod sursa(job #338331)
#include<fstream>
#define p 500009
using namespace std;
struct Nod
{int key;
Nod *urm;
}nod;
Nod *h[500010],*q,*aux,*s,*pp;
int n,x,m;
void add(int val)
{m=val%p;
for(Nod *i=h[m];i;i=i->urm)
if(i->key==m) {return;}
q=new Nod ;
q->key=val;
q->urm=h[m];
h[m]=q;
}
void del(int val)
{
m=val%p;
for(pp=h[m];pp;pp=pp->urm)if(pp->key==val)break;
if(!pp)return;
pp->key=h[m]->key;
pp=h[m];
h[m]=h[m]->urm;
delete pp;
}
int search(int val)
{m=val%p;
for(Nod *i=h[m];i;i=i->urm)
if(i->key==val) return 1;
return 0;
}
int main()
{freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int t,cerinta;
scanf("%d",&t);
for(;t;t--)
{scanf("%d",&cerinta);
switch(cerinta)
{case 1:{scanf("%d",&x);add(x);break;}
case 2:{scanf("%d",&x); del(x);break;}
case 3:{scanf("%d",&x);printf("%d \n",search(x));break;}
default :break; }
}
return 0;
}