Cod sursa(job #1042346)

Utilizator AndreeaPanaitAndreea Elena Panait AndreeaPanait Data 26 noiembrie 2013 21:35:11
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>
#include <vector>
using namespace std;
#define NR 666013

int n;
vector<int> H[NR];

vector<int>::iterator cauta_valoare(int a)
{
	int lista = a % NR;
	vector<int>::iterator i;

	for (i = H[lista].begin(); i != H[lista].end(); ++i)
	if (*i == a)
		return i;
	return H[lista].end();
}

void inserare_valoare(int a)
{
	int lista = a % NR;
	if (cauta_valoare(a) == H[lista].end())
		H[lista].push_back(a);
}

void stergere_valoare(int a)
{
	int lista = a % NR;
	vector<int>::iterator i = cauta_valoare(a);

	if (i != H[lista].end())
		H[lista].erase(i);
}

int main()
{
	int op, a;

	freopen("hashuri.in", "r", stdin);
	freopen("hashuri.out", "w", stdout);

	for (scanf("%d", &n); n; --n)
	{
		scanf("%d %d", &op, &a);
		if (op == 1) 
		{
			inserare_valoare(a);
			continue;
		}
		if (op == 2) 
		{
			stergere_valoare(a);
			continue;
		}
		printf("%d\n", cauta_valoare(a) != H[a % NR].end());
	}

	return 0;
}