Cod sursa(job #371422)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 5 decembrie 2009 12:48:25
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<stdio.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,este;
scanf("%d",&n);
for(i=1;i<=n;i++)
	{
	scanf("%d%d",&op,&x);
	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;
}