Cod sursa(job #611750)

Utilizator balakraz94abcd efgh balakraz94 Data 3 septembrie 2011 00:09:48
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include<cstdio>
#include<vector>
#include<algorithm>
#define infile "hashuri.in"
#define outfile "hashuri.out"
#define mod 666013 
#define pb push_back
using namespace std;

vector < int > L[mod];


vector <int> :: iterator find(int);


void add(int x)
{
    int	list = x % mod;
	
	if(find(x) == L[list].end())
		L[list].pb(x);
}


void erase(int x)
{
	int list = x % mod;
	
	vector <int> :: iterator it = find(x);
	
	if(it != L[list].end())
		L[list].erase(it);
}


vector <int> :: iterator find(int x)
{
	int list = x % mod;
	
	vector <int> :: iterator it;
	
	for(it=L[list].begin(); it!= L[list].end(); ++it)
		if(*it == x)
			return it;

	return L[list].end();
}


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", find(x) != L[x%mod].end()); break;
		}
	}
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}