Pagini recente » Cod sursa (job #3123443) | Cod sursa (job #264357) | Cod sursa (job #1669782) | Cod sursa (job #1868778) | Cod sursa (job #371423)
Cod sursa(job #371423)
#include<stdio.h>
#include<stdlib.h>
#define NM 1000005
#define D 1000003
struct nod
{
int x;
nod *next;
};
nod *v[NM];
int makehash(int x)
{
return x%D;
}
void addnod(int x)
{
int r=makehash(x);
nod *nn=new nod;
nn->x=x;
nn->next=v[r];
v[r]=nn;
}
nod* search(int x)
{
int r=makehash(x);
nod *nc=v[r];
while(nc&&nc->x!=x) nc=nc->next;
return nc;
}
void sterge(int x)
{
nod *nc=search(x);
if(nc)nc->x=0;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int i,n,op,x;
char sir[20],*p;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
fgets(sir,19,stdin);
p=sir;
op=atoi(p);
p+=2;
x=atoi(p);
switch(op)
{
case 1:
if(!search(x))addnod(x);
break;
case 2:
sterge(x);
break;
case 3:
printf("%d\n",search(x)>0);
}
}
return 0;
}