Cod sursa(job #749423)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 16 mai 2012 22:36:53
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<fstream>

using namespace std;

#define MOD 666013

ifstream f("hashuri.in");
ofstream g("hashuri.out");

struct Nod {
	int val;
	Nod *urm;
};

Nod *list[MOD];

void insert(int x) {
	int key = x % MOD;
	Nod *q;
	q = new Nod;
	q->val = x;
	q->urm = list[key];
	list[key] = q;
}

int find(int x) {
	int key = x % MOD;
	Nod *q;
	for(q=list[key]; q; q=q->urm)
	if(x == q->val) 
		return 1;
	return 0;
}

void del(int x) {
	Nod *q;
	int key = x % MOD;
	if(list[key]->val == x) {
		Nod *q;
		q = list[key];
		list[key] = list[key]->urm;
		delete(q);
		return;
	}
 
	for(q=list[key]; q->urm; q=q->urm) {
		if(q->urm->val == x) {
			Nod *t=q->urm;
			q->urm = q->urm->urm;
			delete(t);
			break;
		}
	}
}

int main()	{
	
	int op, x, t;
	f>>t;
	
	while(t--) {
		f>>op>>x;
		if(op==1) {
		   if(!find(x)) 
			   insert(x);
	    }
		else 
			if(op==2) {
				if(find(x)) 
					del(x);
		    }
		    else 
				g<<find(x)<<"\n";
	}
	
	f.close();
	g.close();
	
	return 0;
}