Cod sursa(job #325881)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 22 iunie 2009 20:12:35
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <cstdio>
#include <vector>

using namespace std;

#define file_in "hashuri.in"
#define file_out "hashuri.out"

#define Mod 666013

int n;
vector <int> h[Mod+1];

int search(int x)
{
	int k,i;
	k=x%Mod;
		
	for(vector <int> :: iterator it=h[k].begin();it!=h[k].end();++it)   
 	     if (*it==x)
			  return 1;
	return 0;
}

void add(int x)
{
	int i,k;
	k=x%Mod;
	
	if (search(x))
		 return ;
	h[k].push_back(x);
}

void erase(int x)
{
	int i,k;
	k=x%Mod;
	
	if (!search(x))
		 return ;
	
	for(vector <int> :: iterator it=h[k].begin();it!=h[k].end();++it)   
 	     if (*it==x)
		 {
			 h[k].erase(it);
			 return ;
		 }
}
   


int main()
{
	int i,tip,x;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	
	scanf("%d", &n);
	
	for (i=1;i<=n;++i)
	{
		scanf("%d %d", &tip,&x);
		if (tip==1) add(x);
		if (tip==2) erase(x);
		if (tip==3) printf("%d\n", search(x));
	}
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}