Cod sursa(job #1204529)

Utilizator EpictetStamatin Cristian Epictet Data 3 iulie 2014 10:34:34
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>
#define MOD 666013
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n, op, val, linia;
vector < int > V[MOD+16];

inline int Find_Value (int val)
{
	for (int j=0; j<V[linia].size(); j++)
	{
		if (V[linia][j] == val) return j;
	}
	return -1;
}

inline void Insert_Value (int val)
{
	if (Find_Value(val) < 0) V[linia].push_back(val); 
}

inline void Erase_Value (int val)
{
	if (Find_Value(val) > -1)
	{
		swap (V[linia][Find_Value(val)], V[linia][V[linia].size()-1]);
		V[linia].pop_back();
	}
}

int main()
{
	fin >> n;
	for (int i=1; i<=n; i++)
	{
		fin >> op >> val;
		linia = val % MOD;
		
		if (op == 1) Insert_Value(val);
		else if (op == 2) Erase_Value(val);
		else 
		{
			if (Find_Value(val) >= 0) fout << "1\n";
			else                     fout << "0\n";
		}
	}
	
	fout.close();
	return 0;
}