Cod sursa(job #301828)

Utilizator floringh06Florin Ghesu floringh06 Data 8 aprilie 2009 14:33:39
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#include <vector>

using namespace std;

#define FIN "hashuri.in"
#define FOUT "hashuri.out"
#define mod 666013

int N;
vector <int> H[mod];

	void insert (int x)
	{
		int key = x % mod, i, L = H[key].size ();
		for (i = 0; i < L; ++i)
			if (H[key][i] == x) return;
		H[key].push_back (x);
	}
	
	void erase (int x)
	{
		int key = x % mod, i, L = H[key].size ();
		for (i = 0; i < L; ++i)
			if (H[key][i] == x)
				H[key][i] = H[key][L - 1], H[key].pop_back();
	}
	
	int search (int x)
	{
		int key = x % mod, i, L = H[key].size ();
		for (i = 0; i < L; ++i)
			if (H[key][i] == x) return 1;
		return 0;
	}

	int main ()
	{
		freopen (FIN, "r", stdin);
		freopen (FOUT, "w", stdout);
		
		scanf ("%d", &N);
		while (N--)
		{
			int t, x;
			scanf ("%d %d\n", &t, &x);
			if (t == 1) insert (x);
			if (t == 2) erase (x);
			if (t == 3)
				printf ("%d\n", search (x));
		}
		
		return 0;
	}