Cod sursa(job #2313035)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 5 ianuarie 2019 21:10:49
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <fstream>
#include <vector>

#define input "hashuri.in"
#define output "hashuri.out"
#define MOD 765007

using namespace std;

ifstream in(input);
ofstream out(output);

vector < long long > keys[MOD];
int operatii;

void Insert_OP(int key, long long number)
{
	for (unsigned i = 0; i < keys[key].size(); i++)
	if (keys[key][i] == number) return;
	keys[key].push_back(number);
}

void Delete_OP(int key, long long number)
{
	int poz = -1;
	for (unsigned i = 0; i < keys[key].size() && poz == -1; i++)
	if (keys[key][i] == number) poz = i;
	if (poz != -1)
	keys[key].erase(keys[key].begin() + poz);
}

bool Find_OP(int key, long long number)
{
	for (unsigned i = 0; i < keys[key].size(); i++)
	if (keys[key][i] == number) return true;
	return false;
}

int Hash_X(long long number)
{
	return number % MOD;
}

void Solve()
{
	in >> operatii;
	while (operatii--)
	{
		int op; long long n;
		in >> op >> n;
		int key = Hash_X(n);
		if (op == 1) Insert_OP(key, n);
		else if (op == 2) Delete_OP(key, n);
		else out << Find_OP(key, n) << "\n";
	}
}

int main()
{
	Solve();
	return 0;
}