Cod sursa(job #530603)

Utilizator Gaby_mMititelu Gabriel Gaby_m Data 8 februarie 2011 00:20:26
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<cstdio>
#include<vector>
#include<fstream>
using namespace std;

#define PRIME 666013

vector<int> v[PRIME];
int N;

int h(int nr) {
	return nr % PRIME;
}

int isInHash(int val) {
	int poz = h(val);

	for (int i = 0; i < v[poz].size(); i++){
		if (v[poz][i] == val) return i;
	}	
	return -1;
}


void addHash(int val) {
	int poz = h(val);
	if (isInHash(val) != -1) return;

	v[poz].push_back(val);	
}

void removeHash(int val) {
	int poz = h(val);
	int loc = isInHash(val);
	if (loc == -1) return;

	v[poz][loc] = v[poz][v[poz].size() - 1];
	v[poz].pop_back();
}

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

	fin>>N;
	int i, op, val;
	for(i = 0; i < N; i++) {
		fin>>op>>val;
		if (op == 1) addHash(val);
		else if (op == 2) removeHash(val);
			else fout<<(isInHash(val)==-1?0:1)<<"\n";
	}

	return 0;
}