Cod sursa(job #1382758)

Utilizator Mr.DoomRaul Ignatus Mr.Doom Data 9 martie 2015 15:32:32
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <vector>
using namespace std;

#define MOD 700277

ifstream is("hashuri.in");
ofstream os("hashuri.out");

int n;
int op, x;
vector<int> H[MOD];
void Insert(int x);
void Delete(int x);
vector<int>::iterator Find(int x);

int main()
{
	is >> n;
	for ( int i = 1; i <= n; ++i )
	{
		is >> op >> x;
		switch(op)
		{
			case 1 :
				Insert(x);
				break;
			case 2 :
				Delete(x);
				break;
			case 3 :
				os << ( Find(x) != H[x % MOD].end() ) << '\n';
				break;
		}
	}
			
	
	
	is.close();
	os.close();
	return 0;
}


void Insert(int x)
{
	int list = x % MOD;
	if ( Find(x) == H[list].end() )
		H[list].push_back(x);
}

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

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