Cod sursa(job #734796)

Utilizator TabaraTabara Mihai Tabara Data 14 aprilie 2012 21:49:10
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#include <vector>
using namespace std;

#define in "hashuri.in"
#define out "hashuri.out"
#define NMAX 1000005
#define MOD 666013

int N;
vector<int> H[MOD];

inline vector<int>::iterator find_value( int x )
{
	int list = x % MOD;
	vector<int>::iterator it;

	for ( it = H[list].begin(); it != H[list].end(); ++it )
		if ( *it == x ) return it;
	return H[list].end();
}

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

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

int main(void)
{
	freopen ( in, "r", stdin );
	freopen ( out, "w", stdout );

	int op, x;

	for (  scanf ( "%d", &N ); N; --N )
	{
		scanf ( "%d %d", &op, &x );
		if ( op == 1 )
		{
			insert_value(x);
			continue;
		}
		if ( op == 2 )
		{
			erase_value(x);
			continue;
		}
		printf ( "%d\n", find_value(x) != H[ x % MOD ].end() );
	}
	return 0;
}