Cod sursa(job #903010)

Utilizator Kira96Denis Mita Kira96 Data 1 martie 2013 18:02:09
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#define DIM 1000001
#define MOD 666013
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int i,n,x,t,p[DIM],h[DIM],o[DIM],poz;
int add(int x);
int del(int x);
int find(int x);
int main ()
{
	f>>n;
	for(i=1;i<=n;++i)
	{
		f>>t>>x;
		switch(t)
		{
		case 1:add(x);break;
		case 2:del(x);break;
		case 3:g<<find(x)<<"\n";break;
		}
	}
}
int add(int x)
{
	h[++t]=x;
	p[t]=x%MOD;
	o[x%MOD]=t;
}
int find(int x)
{
	poz=o[x%MOD];
	while(h[poz]!=x&&poz)
	{
		poz=p[poz];
	}
	if(h[poz]==x)
		return 1;
	return 0;
}
int del(int x)
{
	poz=o[x%MOD];
	while(h[poz]!=x&&poz)
	{
		poz=p[poz];
	}
	if(h[poz]==x)
		h[poz]=-1;
}