Cod sursa(job #2895917)

Utilizator miruna_georgescuMiruna Georgescu miruna_georgescu Data 29 aprilie 2022 16:37:17
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.22 kb
#include <fstream>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

vector <list<int>> multime(1000003);

int H (int x)
{
	return x % 1000003; 
}

void adaugare()
{
	int parametru; fin >> parametru;
	auto i = find(multime[H(parametru)].begin(), multime[H(parametru)].end(), parametru);
	if (i == multime[H(parametru)].end())
		multime[H(parametru)].push_back(parametru);
}

void stergere()
{
	int parametru; fin >> parametru;
	auto i = find(multime[H(parametru)].begin(), multime[H(parametru)].end(), parametru);
	if (i != multime[H(parametru)].end())
		multime[H(parametru)].remove(parametru);
}

void verificare()
{
	int parametru; fin >> parametru;
	auto i = find(multime[H(parametru)].begin(), multime[H(parametru)].end(), parametru);
	if (i != multime[H(parametru)].end())
		fout << "1\n";
	else
		fout << "0\n"; 
}

int main()
{
	int nrOperatii; fin >> nrOperatii; 
	
	for (int i = 1; i <= nrOperatii; i++)
	{
		int operatie; fin >> operatie; 
		switch (operatie)
		{
		case 1: 
			adaugare(); 
			break; 
		case 2: 
			stergere();
			break;
		case 3: 
			verificare(); 
			break; 
		}
	}
}