Cod sursa(job #606283)
#include<fstream.h>
#define N 1000001
typedef struct nod
{long info;
nod *urm;}Nod;
long n,y,i,x;
Nod *h[N];
int find(Nod *l,long y)
{Nod *p;
for(p=l;p!=NULL;p=p->urm)
if(p->info==y)
return 1;
return 0;}
void add(Nod *&l,long y)
{Nod *nou=new Nod;
nou->urm=l,nou->info=y,l=nou;}
void del(Nod *&l,long 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;
free(p);}}
int main()
{ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>n;
for(i=0;i<N;i++)
h[i]=NULL;
for(i=1;i<=n;i++)
{f>>x>>y;
if(x==1)
{if(!find(h[y%N],y))
add(h[y%N],y);}
else
if(x==2)
{if(find(h[y%N],y))
del(h[y%N],y);}
else
g<<find(h[y%N],y)<<"\n";}
return 0;}