Cod sursa(job #1771760)

Utilizator Gigel-FroneGigel Fronel Gigel-Frone Data 5 octombrie 2016 22:59:42
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <cstdio>
#include <vector>
#define mod 666013

using namespace std;

vector <int> list[mod];

vector <int> :: iterator find(int x)
{
	int k=x % mod;
	vector <int> :: iterator it;
	for(it=list[k].begin(); it<list[k].end(); it++)
		if(*it == x) return it;
	return list[k].end();
}

void insert(int x)
{
	int k= x % mod;
	if(find(x) == list[k].end())
	list[k].push_back(x);
}

void erase_value(int x)
{
	int k= x % mod;
	vector <int> :: iterator it = find(x);
	if(it != list[k].end())
	list[k].erase(it);
}

int main()
{
	freopen("hashuri.in", "r", stdin);
	freopen("hashuri.out", "w", stdout);
	
	int n;
	scanf("%d", &n);
	for(int i=1; i<=n; i++)
	{
		int tip, x;
		scanf("%d%d", &tip, &x);
		
		if(tip == 1) insert(x);
		else if(tip == 2) erase_value(x);
		
		else if(tip == 3)
		{
			bool ok;
			if(find(x) != list[x%mod].end()) ok=1;
			else ok=0;
			printf("%d\n", ok);
		} 
	}
}