Cod sursa(job #1096380)

Utilizator pulseOvidiu Giorgi pulse Data 1 februarie 2014 22:03:11
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <cstdio>
#include <vector>

using namespace std;

#define MOD 666013

int T;
vector <int> v[MOD];

inline vector <int> :: iterator find_value (int x)
{
	int list = x % MOD;
	vector <int> :: iterator it;
	for (it = v[list].begin (); it != v[list].end (); ++it)
	{
		if (*it == x)
			return it;
	}
	return v[list].end ();
}

inline void insert_value (int x)
{
	int list = x % MOD;
	if (find_value (x) == v[list].end ())
		v[list].push_back (x);
}

inline void erase_value (int x)
{
	int list = x % MOD;
	vector <int> :: iterator it = find_value (x);
	if (it != v[list].end ())
		v[list].erase (it);
}

int main ()
{
	freopen ("hashuri.in", "r", stdin);
	freopen ("hashuri.out", "w", stdout);
	scanf ("%d", &T);
	while (T--)
	{
		int type, x;
		scanf ("%d %d", &type, &x);
		if (type == 1)
		{
			insert_value (x);
			continue;
		}
		if (type == 2)
		{
			erase_value (x);
			continue;
		}
		printf ("%d\n", find_value (x) != v[x % MOD].end ());
	}
	return 0;
}