Cod sursa(job #2760603)

Utilizator MadalinaKopaczMadalina Kopacz MadalinaKopacz Data 28 iunie 2021 02:58:12
Problema Hashuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

vector<vector<long long>> Hash(666013);
int N;

void Rezolvare()
{
	long long op, disp, x;
	fin >> N;
	for (int i = 0; i < N; i++)
	{
		fin >> op >> x;
		disp = x % 666013;

		//operatia de tipul 1: se adauga elementul x la multime (unde x este un parametru al operatiei). 
		//Daca x este deja in multime, atunci aceasta ramane neschimbata.
		if (op == 1)   Hash[disp].push_back(x);    

		//operatia de tipul 2: se sterge elementul x, daca acesta este deja in multime. In caz contrar, multimea ramane neschimbata.
		if (op == 2)
			for (int i = 0; i < Hash[disp].size(); i++)
				if (Hash[disp][i] == x)        Hash[disp].erase(Hash[disp].begin() + i);

		//operatia de tipul 3: returneaza 1 daca si numai daca x este in multime, iar in caz contrar returneaza 0.
		if (op == 3)
		{
			bool gasit = 0;
			for (int i = 0; i < Hash[disp].size(); i++)
				if (Hash[disp][i] == x)
				{
					fout << '1' << '\n';
					gasit = 1;
				}
			if (gasit == 0)  fout << '0' << '\n';
		}

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