Cod sursa(job #796739)

Utilizator cbanu96Banu Cristian cbanu96 Data 12 octombrie 2012 13:35:59
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <vector>
#include <fstream>

#define MOD 666013

using namespace std;

vector<int> V[MOD];
int N, op, x;

inline vector<int>::iterator 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();
}

inline int query ( int x )
{
	int l = x % MOD;
	vector<int>::iterator it;
	it = find(x);
	if(it == V[l].end())
		return 0;
	else
		return 1;
}

inline void add ( int x )
{
	int l = x % MOD;
	vector<int>::iterator it = find(x);
	if(it == V[l].end())
	{
		V[l].push_back(x);
	}
}

inline void erase ( int x )
{
	int l = x % MOD;
	vector<int>::iterator it = find(x);
	if(it != V[l].end())
	{
		V[l].erase(it);
	}
}


int main()
{
	ifstream fin("hashuri.in");
	ofstream fout("hashuri.out");
	fin >> N;
	for ( int i = 1; i <= N; i++)
	{
		fin >> op >> x;
		if ( op == 1 )
		{
			add(x);
		}
		if ( op == 2 )
		{
			erase(x);
		}
		if ( op == 3 )
		{
			fout << query(x) << '\n';
		}
	}
	fin.close();
	fout.close();
	
	return 0;
}