Cod sursa(job #3323038)

Utilizator boboc132Boboc Teodor boboc132 Data 16 noiembrie 2025 18:29:50
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

const int P=666013;
vector<int>H[P];
int n,op,x;

int getHash(int x){
    return(1LL*x%P+P)%P;
}

bool gasit(int x){
    int pos=getHash(x);

    for(int element:H[pos]){
        if(element==x)
            return true;
    }
    return false;
}

void add(int x){
    if(!gasit(x)){
        int pos=getHash(x);
        H[pos].push_back(x);
    }
}

void remove(int x){
    int pos=getHash(x);
    for(int i=0;i<H[pos].size();i++){
        if(H[pos][i]==x){
            H[pos][i]=H[pos].back();
            H[pos].pop_back();
            return;
        }
    }
}

int main(){
    ios_base::sync_with_stdio(false);
    in.tie(NULL);
    out.tie(NULL);
    in>>n;
    for(int i=1;i<=n;i++){
        in>>op>>x;
        if(op==1){
            add(x);
        }else if(op==2){
            remove(x);
        }else if(op==3){
            if(gasit(x))
                out<<1<<"\n";
            else
                out<<0<<"\n";
        }
    }
    return 0;
}