Cod sursa(job #288851)

Utilizator gggbbbyyyDarkMan gggbbbyyy Data 26 martie 2009 10:05:55
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <cstdio>
#include <vector>

using namespace std;

#define maxN 1000100
#define MOD  666013

vector <int> H[MOD], aux;
int N;

void push(int val) {
	int x, i;
	x = val % MOD;
	H[x].push_back(val);
}

void pop(int val) {
	int x, i, y;
	x = val % MOD; y = H[x].size();
	for (i = 0; i < y; ++ i)
		if (H[x][i] == val) {
			H[x][i] = H[x][y - 1];
			H[x].pop_back();
			//vector <int> ().swap(H[x]);
			return ;
		}
}

bool ask(int val) {
	int x, i;
	x = val % MOD;
	for (i = 0; i < H[x].size(); ++ i)
		if (H[x][i] == val)
			return true;
	return false;
}
int main () {
	int i, tip, val;

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

	scanf("%d", &N);
	for (; N --; ) {
		scanf("%d%d", &tip, &val);
		if (tip == 1)	push(val);
		if (tip == 2)	pop(val);
		if (tip == 3)	fprintf(stdout, "%d\n", (int)ask(val));
	}
	//while (1);
}