Cod sursa(job #697577)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 29 februarie 2012 09:54:30
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <cstdio>
#include <vector>

using namespace std;

vector <int> a[666013];
int n;

inline vector<int>::iterator search_v(int x)
{
	int list = x%666013;
	vector<int>::iterator it, it1;
	it1 = a[list].end();
	for (it = a[list].begin(); it != it1; it++)
		if (*it == x)
			return it;
	return a[list].end();
}

void insert_v(int x)
{
	int list = x%666013;
	if (search_v(x) == a[list].end())
	{
		a[list].push_back(x);
	}
}

void delete_v(int x)
{
	int list = x%666013;
	vector <int>::iterator it = search_v(x);
	if (it != a[list].end())
	{
		a[list].erase(it);
	}
}

int main()
{
	freopen("hashuri.in", "r", stdin);
	freopen("hashuri.out", "w", stdout);
	int i, x, y, list;
	scanf("%d", &n);
	for (i=0; i<n; i++)
	{
		scanf("%d %d", &x, &y);
		if (x == 1)
		{
			insert_v(y);
			continue;
		}
		if (x == 2)
		{
			delete_v(y);
			continue;
		}
		list = y%666013;
		if (search_v(y) != a[list].end())
			printf("1\n");
		else
			printf("0\n");
	}
	
	return 0;
}