Cod sursa(job #682169)

Utilizator balakraz94abcd efgh balakraz94 Data 18 februarie 2012 17:35:14
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include<cstdio>
#include<list>
#define infile "hashuri.in"
#define outfile "hashuri.out"
#define Mod 666013 
#define pb push_back
#define iter list < int > :: iterator
#define NIL T[h(x)].end()
#define FOR(g) \
	for(iter it = g.begin(); it!=g.end(); ++it)
using namespace std;


list < int > T[Mod];


inline int h(int x){
	return x % Mod; }


iter search(int x)
{
	FOR(T[h(x)])
		if(*it == x)
			return it;
	
	return NIL; 
}


void add(int x)
{	
	if(search(x) != NIL)
		return;
	
	T[h(x)].pb(x);
}


void erase(int x)
{
	iter it = search(x);
	
	if(it == NIL)
		return;
	
	T[h(x)].erase(it);
}



int main()
{
	freopen(infile,"r",stdin);
	freopen(outfile,"w",stdout);
	
	int op, x, n;
	
	scanf("%d",&n);
	
	while(n--)
	{
		scanf("%d %d",&op,&x);
		
		switch (op)
		{
		case 1: add(x);                                    break;  
	    case 2: erase(x);                                  break;
	    case 3: printf("%d\n", search(x) != NIL); break;
		}
	}
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}