Cod sursa(job #658954)

Utilizator StefanLacheStefan Lache StefanLache Data 9 ianuarie 2012 20:37:12
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb

#include <stdio.h>

#include <vector>



using namespace std;

#define MOD 666013



int N;

vector<int> G[MOD];



inline vector<int>::iterator find_value(int x)

{

int list = x % MOD;

vector<int>::iterator it;



for (it = G[list].begin(); it != G[list].end(); ++it)

if (*it == x)

return it;

return G[list].end();

}



inline void insert_value(int x)

{

int list = x % MOD;

if (find_value(x) == G[list].end())

G[list].push_back(x);

}



inline void erase_value(int x)

{

int list = x % MOD;

vector<int>::iterator it = find_value(x);



if (it != G[list].end())

G[list].erase(it);

}



int main()

{

int op, x;


freopen("hashuri.in", "r", stdin);

freopen("hashuri.out", "w", stdout);



for (scanf("%d", &N); N; --N)

{

scanf("%d %d", &op, &x);

if (op == 1) // inserare

{

insert_value(x);

continue;

}

if (op == 2) // stergere

{

erase_value(x);

continue;

}

printf("%d\n", find_value(x) != G[x % MOD].end());

}



return 0;