Cod sursa(job #905009)

Utilizator swim406Teudan Adina swim406 Data 5 martie 2013 11:54:55
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define MOD 666013

vector <int> G[MOD];

vector<int>::iterator find_x (int x) {
    vector<int>::iterator it;
    int list = x % MOD;
    for (it = G[list].begin(); it != G[list].end(); ++it)
        if (*it == x) return it;
    return G[list].end();
}

void insert_x (int x) {
    int list = x % MOD;
    if (find_x(x) == G[list].end())
        G[list].push_back(x);
}

void delete_x (int x) {
    int list = x % MOD;
    vector<int>::iterator it;
    it = find_x(x);
    if (it != G[list].end())
        G[list].erase(it);
}

int main() {
    freopen ("hashuri.in", "r", stdin);
    freopen ("hashuri.out", "w", stdout);
    int N, opt, x, i;
    scanf ("%d", &N);
    for (i = 1; i <= N; ++i) {
        scanf ("%d %d", &opt, &x);
        if (opt == 1) insert_x (x);
        if (opt == 2) delete_x (x);
        if (opt == 3) printf ("%d\n", find_x(x) != G[x % MOD].end());
    }
    return 0;
}