Cod sursa(job #1146155)

Utilizator catalincraciunCraciun Catalin catalincraciun Data 18 martie 2014 19:16:59
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
/// Craciun Catalin
///  Hashuri
///   Arhiva educationala
#include <fstream>
#include <iostream>
#include <vector>

#define MOD 700001

using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

vector<int> A[MOD];
int n;

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

void addElement(int x)
{
	int list=x%MOD;
	vector<int>::iterator it=elementExists(x);
	
	if (it==A[list].end())
		A[list].push_back(x);
}

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

int main()
{
	f>>n;
	for (int i=1;i<=n;i++)
	{
		short type; long el;
		f>>type>>el;
		if (type==1)
			addElement(el);
		else if (type==2)
			eraseElement(el);
		else
		{
			bool ok=elementExists(el)!=A[el%MOD].end();
			g<<ok<<'\n';
		}
	}
	
	f.close();
	g.close();
	
	return 0;
}