Cod sursa(job #924004)

Utilizator vld7Campeanu Vlad vld7 Data 24 martie 2013 00:25:18
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

const int MOD = 666013;

vector <int> Hash[MOD];
vector <int> :: iterator it;

int find(int val) {
	int list = val % MOD;
	
	for (it = Hash[list].begin(); it != Hash[list].end(); ++it)
		if (*it == val)
			return 1;
	return 0;
}

void insert(int val) {
	int list = val % MOD;
	
	if (find(val) == 0)
		Hash[list].push_back(val);
}

void erase(int val) {
	int list = val % MOD;
	
	for (it = Hash[list].begin(); it != Hash[list].end(); ++it)
		if (*it == val)
			Hash[list].erase(it);
}

int main() {
	int n, op, val;
	
	f >> n;
	for (int i = 1; i <= n; i++) {
		f >> op >> val;
		if (op == 1)
			insert(val);
		else if (op == 2)
			erase(val);
		else
			g << find(val) << '\n';
	}
	
	return 0;
}