Cod sursa(job #377922)

Utilizator GotenAmza Catalin Goten Data 26 decembrie 2009 21:29:26
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream.h>

int v[1001000][2],start[699050],p=699037,k;

int caut(int key)
{
	int rest=key%p,t,pozitie;
	t=start[rest];
	pozitie=0;
	while(t&&!pozitie)
		if(v[t][0]==key)
			pozitie=t;
		else
			t=v[t][1];
	return pozitie;
}

void adaug(int key)
{
	int rest=key%p,pozitie;
	pozitie=caut(key);
	if(!pozitie)
	{
		v[++k][0]=key;
		v[k][1]=start[rest];
		start[rest]=k;
	}
}

void sterg(int key)
{
	int pozitie;
	pozitie=caut(key);
	if(pozitie)
		v[pozitie][0]=-key;
}


int main()
{
	int i,n,op,x;
	ifstream f("hashuri.in");
	ofstream g("hashuri.out");
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>op>>x;
		if(op==1)
			adaug(x);
		else
			if(op==2)
				sterg(x);
			else
				if(caut(x))
					g<<"1\n";
				else 
					g<<"0\n";
	}
	return 0;
}