Cod sursa(job #2659550)

Utilizator 2016Teo@Balan 2016 Data 17 octombrie 2020 00:13:10
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.15 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 hh;
int main() {
    int n, i, nr, op;
    in >> n;
    for(i = 0; i < n; i++) {
        in >> op >> nr;
        if(op == 1)
            hh.Insert(nr);
        else if(op == 2)
            hh.Erase(nr);
        else
            out << hh.Find(nr) << '\n';

    }
    return 0;
}