Cod sursa(job #730066)

Utilizator StrajanStrajan Sebastian Ioan Strajan Data 2 aprilie 2012 23:23:53
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<stdio.h>
#define N 500009
struct nod{
	int inf;
	nod *urm;
};
nod *p[N],*pp;
int n,c,v,h;

void readd(),add(),del(),ver();

void readd(){
	freopen("hashuri.in","rt",stdin);
	freopen("hashuri.out","wt",stdout);
	scanf("%d",&n);
}

void add(){
	h = v%N;
	for (pp = p[h]; pp; pp = pp->urm)
		if (pp->inf == v)
			return;
	pp = new nod;
	pp->inf = v;
	pp->urm = p[h];
	p[h] = pp;
}

void del(){
	h = v%N;
	for (pp=p[h]; pp; pp=pp->urm)
		if (pp->inf==v)
			break;
	if (!pp) 
		return;
	pp->inf = p[h]->inf;
	pp = p[h];
	p[h] = p[h]->urm;
	delete pp;
}

void ver(){
	h = v%N;
	for (pp = p[h]; pp; pp = pp->urm)
		if(pp->inf == v){
			printf("1\n");
			return;
		}
	printf("0\n");
}

int main(){
	readd();
	for (;n;n--){
		scanf("%d%d",&c,&v);
		if (c == 1){
			add();
			continue;
		}
		if (c == 2){
			del();
			continue;
		}
		ver();
	}
	return 0;
}