Cod sursa(job #328150)

Utilizator drag0s93Mandu Dragos drag0s93 Data 1 iulie 2009 09:34:32
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<cstdio>
#include<vector>

#define mod 666013
#define IN "hashuri.in","r",stdin
#define OUT "hashuri.out","w",stdout

using namespace std;

int N;
vector<int> hash[mod];
int f(int x)
{
	return x % mod;
}
int inter(int nr)
{
	int d = f(nr);
	int sz = hash[d].size();
	for(int i = 0; i < sz; ++i)
		if(hash[d][i] == nr)	
			return 1;
	return 0;
}
void add(int nr)
{
	int d = f(nr);
	if(inter(nr) == 1)	return ;	
	hash[d].push_back(nr); 
}
void erase(int nr)
{
	vector<int>::iterator it;
	int d = f(nr);
	
	for (it = hash[d].begin(); it != hash[d].end(); ++it)
		if (*it == nr)
		{
			hash[d].erase(it);
			return ;
		}
}
int main()
{
	freopen(IN);
	freopen(OUT);
	scanf("%d",&N);
	int nr , tip;
	for(int i = 1 ; i <= N ; ++i)
	{
		scanf("%d%d",&tip,&nr);
		if(tip == 1)	add(nr);
		else if(tip == 2)	erase(nr);
		else printf("%d\n",inter(nr));
	}
	return 0;
}