Cod sursa(job #2746841)

Utilizator Zamolxis25Sebastian Gradinaru Zamolxis25 Data 28 aprilie 2021 16:36:49
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>
#include <vector>

#define P 786433
using namespace std;

vector<int> G[P];

vector<int>::iterator find(int x){
    int list = x % P;
    vector<int>::iterator it;

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

void insert(int x){
    int list = x % P;
    if(find(x) == G[list].end()){
        G[list].push_back(x);
    }
}

void erase(int x){
    int list = x % P;
    auto it = find(x);

    if(it != G[list].end()){
        G[list].erase(it);
    }
}

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

int main() {
    int N, op, nr;

    fin>>N;
    for(int i = 0; i< N; i++){
        fin>>op>>nr;
        switch(op){
            case 1:
                insert(nr);
                break;
            case 2:
                erase(nr);
                break;
            case 3:
                if(find(nr) != G[nr % P].end()) fout<<1<<'\n';
                else fout<<0<<'\n';
                break;
            default:
                break;
        }
    }

    return 0;
}