Cod sursa(job #1080882)

Utilizator BionicMushroomFMI - Dumitrescu Tiberiu Alexandru BionicMushroom Data 12 ianuarie 2014 22:53:05
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<fstream>
#include<vector>
using namespace std;

#define PRIME 666013
vector <int> h[PRIME];

int cauta(int val)
{
	int zona = val % PRIME;
	for (int i = 0; i < h[zona].size(); i++)
		if (h[zona][i] == val)
			return i;
	return -1;
}

void insereaza(int val)
{
	int zona = val % PRIME;
	if (cauta(val) == -1)
		h[zona].push_back(val);
}

void sterge(int val)
{
	int poz = cauta(val);
	if (poz != -1)
	{
		int zona = val % PRIME;
		h[zona][poz] = h[zona].back();
		h[zona].pop_back();
	}
}

int main()
{
	int n, cod, val;
	ifstream f("hashuri.in");
	ofstream g("hashuri.out");
	f >> n;
	for (int i = 0; i < n; i++)
	{
		f >> cod >> val;
		switch (cod)
		{
		case 1:
			insereaza(val);
			break;
		case 2:
			sterge(val);
			break;
		case 3:
			if (cauta(val) == -1)
				g << "0\n";
			else
				g << "1\n";
		}
	}
	return 0;
}