Cod sursa(job #659419)

Utilizator paul24090FMI - Balauru Paul paul24090 Data 10 ianuarie 2012 17:06:25
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <list>
#define MOD 666013

using namespace std;

list<int> hash[MOD];
int n;

list<int>::iterator findValue(int x)
{
	int xx = x%MOD;
	list<int>::iterator it;
	for(it=hash[xx].begin();it!=hash[xx].end();++it)
		if(*it == x)
			return it;
	return hash[xx].end();
}

void insert(int x)
{
	if(findValue(x) == hash[x%MOD].end())
		hash[x%MOD].push_back(x);
}

void erase(int x)
{
	list<int>::iterator it;
	it=findValue(x);
	if(it!=hash[x%MOD].end())
		hash[x%MOD].erase(it);
}

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	
	scanf("%d",&n);
	int op,x;
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&op);
		scanf("%d",&x);
		if(op==1)
			insert(x);
		else if(op==2)
			erase(x);
		else 
			printf("%d\n", findValue(x)!=hash[x%MOD].end());
	}
	return 0;
}