Cod sursa(job #519483)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 5 ianuarie 2011 19:00:58
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>

const int M=666013;
int N,c,x,i;
struct elem{
	int inf;
	elem *next;
} *H[M+5];
elem *p,*q;

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	scanf("%d",&N);
	for(i=0;i<=M;i++) H[i]=NULL;
	for(i=1;i<=N;i++)
	{
		scanf("%d %d",&c,&x);
		for(p=H[x%M];p && p->inf!=x;p=p->next);
		if(c==1 && p==NULL)
		{
			q=new elem;
			q->inf=x; q->next=H[x%M];
			H[x%M]=q;
			continue;
		}
		if(c==2 && p!=NULL)
		{
			if(H[x%M]->inf==x) H[x%M]=H[x%M]->next;
			else
			{
				q=p;
				p=p->next;
				delete(q);
			}
			continue;
		}
		if(c==3)
		{
			if(p==NULL) printf("0\n");
			else printf("1\n");
		}
	}
}