Cod sursa(job #956952)

Utilizator SchumiDumitru Andrei Georgian Schumi Data 4 iunie 2013 10:14:49
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

const int MOD = 666013;

int n;
vector <int> Hash[MOD];

void insert(int val) {
    int key = val % MOD;

    Hash[key].push_back(val);
}

vector <int>::iterator find(int val) {
    int key = val % MOD;

    for (vector <int>::iterator it = Hash[key].begin(); it != Hash[key].end(); ++it)
        if (*it == val)
            return it;

    return Hash[key].end();
}

void erase(int val) {
    int key = val % MOD;

    vector <int>::iterator it = find(val);

    if (it != Hash[key].end())
        Hash[key].erase(it);
}

int main() {
    f >> n;
    
    while (n--) {
        int type, val;

        f >> type >> val;

        if (type == 1)
            insert(val);
        else if (type == 2)
            erase(val);
        else {
            if (find(val) == Hash[val % MOD].end())
                g << "0\n";
            else
                g << "1\n";
        }
    }

    return 0;
}