Cod sursa(job #2659549)

Utilizator 2016Teo@Balan 2016 Data 17 octombrie 2020 00:11:14
Problema Hashuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
class HashMap {
private:
    const static int MOD = 666013;
    vector <int> table[MOD];

public:
    bool find(int elem) {
        int H = elem % MOD;
        for(vector <int> :: iterator it = table[H].begin(); it != table[H].end(); it++) {
            if(*it == elem)
                return true;
        }

        return false;
    }

    void insert(int elem) {
        int H = elem % MOD;
        if(!find(elem))
            table[H].push_back(elem);
    }

    void erase(int elem) {
        int H = elem % MOD;
        for(vector <int> :: iterator it = table[H].begin(); it != table[H].end(); it++) {
            if(*it == elem) {
                table[H].erase(it);
                return;
            }
        }
    }
};
HashMap hash;
int main() {
    int n, i, nr, op;
    in >> n;
    for(i = 0; i < n; i++) {
        in >> op >> nr;
        if(op == 1)
            hash.insert(nr);
        else if(op == 2)
            hash.erase(nr);
        else
            out << hash.find(nr) << '\n';

    }
    return 0;
}