Cod sursa(job #883862)

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