Cod sursa(job #301029)

Utilizator snaked31Stanica Andrei snaked31 Data 7 aprilie 2009 21:00:50
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;

#define MOD 666013

vector <int> v[MOD];
int n, i, t, x;

vector <int>::iterator h_find(int x)

{
	int l = x % MOD;
	vector <int>::iterator it;

	for (it=v[l].begin(); it != v[l].end(); ++it)
	{
		if (*it == x)
		{
			return it;
		}
	}
	return v[l].end();
}


void h_add(int x)

{
	int l = x % MOD;
	if (h_find(x) == v[l].end())
	{
		v[l].push_back(x);
	}
}


void h_remove(int x)

{
	int l = x % MOD;
	vector <int>::iterator it = h_find(x);

	if (it != v[l].end())
	{
		v[l].erase(it);
	}
}


int main()

{
	freopen("hashuri.in", "r", stdin);
	freopen("hashuri.out","w",stdout);

	scanf("%d ", &n);
	for (i=1; i<=n; ++i)
	{
		scanf("%d %d ", &t, &x);
		if (t == 1)
		{
			h_add(x);
		}
		else
		if (t == 2)
		{
			h_remove(x);
		}
		else
		if (t == 3)
		{
			printf("%d\n", h_find(x) != v[x % MOD].end());
		}
	}

	return 0;
}