Cod sursa(job #2891076)

Utilizator StefanSanStanescu Stefan StefanSan Data 17 aprilie 2022 14:26:51
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.3 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int MOD = 666013;

vector < int > Hash[MOD];

vector < int >::iterator find_value(int x){
        int list = x % MOD;
        vector < int >::iterator it;

        for(it = Hash[list].begin(); it != Hash[list].end(); ++it)
                if(*it = x)
                        return it;

        return Hash[list].end();
}

void insert_value(int x){
        int list = x % MOD;
        if(find_value(x) == Hash[list].end())
                Hash[list].push_back(x);
}

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

int main(){

        int op, x, n;
        in >> n;
        while(n--) {
                in >> op >> x;
                switch(op) {
                case 1:
                        insert_value(x);
                        break;
                case 2:
                        erase_value(x);
                        break;
                case 3:
                        out << (find_value(x) != Hash[x % MOD].end()) << '\n';
                        break;
                }
        }

        return 0;
}