Cod sursa(job #664484)

Utilizator StefanLacheStefan Lache StefanLache Data 20 ianuarie 2012 10:13:11
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
#include <vector>
using namespace std;
#define REST 666013
int N;
vector<int> H[REST];
vector<int>::iterator gaseste(int x)
{
int lista = x % REST;
vector<int>::iterator i;
for (i=H[lista].begin(); i!= H[lista].end(); ++i)
    if (*i == x)
        return i;
return H[lista].end();
}
void insereaza(int x)
{
int lista= x % REST;
if (gaseste(x) == H[lista].end())
    H[lista].push_back(x);
}

void sterge(int x)
{
int lista = x % REST;
vector<int>::iterator i = gaseste(x);
if (i!= H[lista].end())
    H[lista].erase(i);
}
int main()
{
int op, x;
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
for (scanf("%d", &N); N; --N)
{
scanf("%i %i", &op, &x);
if (op == 1)
{
insereaza(x);
continue;
}
if (op == 2)
{
sterge(x);
continue;
}
printf("%i\n", gaseste(x) != H[x % REST].end());
}
return 0;
}