Cod sursa(job #2037575)

Utilizator VAIonescuIonescu Vlad-Andrei VAIonescu Data 12 octombrie 2017 15:54:12
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <cstdio>
#include <vector>
#include <algorithm>

const int M=666013;

std::vector<int> H[M];

int hashh(int key){
    return key%M;
}

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    int n;
    scanf("%d",&n);
    int op,x;
    for (int i=0;i<n;i++){
        scanf("%d%d",&op,&x);
        int xhash=hashh(x);
        auto xit = std::find(std::begin(H[xhash]),
                              std::end(H[xhash]),x);
        switch(op){
            case 1:{
                if (xit==std::end(H[xhash])){
                    H[xhash].push_back(x);
                   // printf("push %d\n",x);
                }
            }break;
            case 2:{
                if (xit!=std::end(H[xhash])){
                    H[xhash].erase(xit);
                   // printf("erase %d\n",x);
                }
            }break;
            case 3:{
                if (xit!=std::end(H[xhash])){
                    printf("1\n");
                }else{
                    printf("0\n");
                }
            }break;
        }
    }
    return 0;
}