Cod sursa(job #775530)

Utilizator cameleonGeorgescu Dan cameleon Data 8 august 2012 13:27:36
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<fstream>
using namespace std;
#define MOD 666013
ifstream f("hashuri.in");
ofstream g("hashuri.out");
struct nod{
	int inf;
	nod *urm;
} *a[666015];
int n;
int find(int x)
{
	int gasit=0;
	if(a[x%MOD]!=NULL)
	{
		for(nod *p=a[x%MOD];p!=NULL;p=p->urm)
			if(p->inf==x)
			{gasit=1;break;}
	}
	return gasit;
}
void insert( int x)
{
	nod *p=new nod;
	p->inf=x;p->urm=a[x%MOD];
	a[x%MOD]=p;
}
void del(int x)
{
	nod *p=a[x%MOD];
	if(p->inf==x){a[x%MOD]=p->urm; delete p;}
	else
		for(nod* p=a[x%MOD];p->urm!=NULL;p=p->urm)
			if(p->urm->inf==x)
			{
				nod *q=p->urm;
				p->urm=p->urm->urm;
				delete q;
				break;
			}

		
}

int main()
{
	f>>n;
	for(int i=1;i<=n;i++)
	{
		int op,x;
		f>>op>>x;
		switch(op)
		{
		case 1:if(!find(x))insert(x);break;
		case 2:if(find(x))del(x);break;
		case 3:g<<find(x)<<'\n';
		}
		
	}
return 0;
}