Cod sursa(job #2748152)

Utilizator mirunavrAvram Miruna-Alexandra mirunavr Data 29 aprilie 2021 22:59:50
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.34 kb
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

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

struct Hashuri{
    vector<vector<pair<int,int>>> v;

Hashuri(int cap): v(cap){

}

int hashValue(int val){
    return val%666013;
}

bool insertValue(int val, int x){
    int i,poz;
    poz=hashValue(val);
    for(i=0;i<v[poz].size();++i){
        if(val==v[poz][i].first){
            v[poz][i].second=x;
            return false;
        }
    }
    v[poz].push_back({val,x});
    return true;
}

bool eraseValue(int val){
    int poz,i;
    poz=hashValue(val);
    for(i=0;i<v[poz].size();++i){
        if(val==v[poz][i].first){
            v[poz].erase(v[poz].begin()+i);
            return true;
        }

    }
    return false;
}

int getValue(int val){
    int poz,i;
    poz=hashValue(val);
    for(i=0;i<v[poz].size();++i){
        if(val==v[poz][i].first)
            return v[poz][i].second;
    }
    return 0;

}
};


int main(){
    Hashuri h(1000001);
    int n,i,op,val,j,ok;
    f>>n;
    for(i=0;i<n;++i){
        f>>op>>val;
        if(op==1){
            h.insertValue(val,1);
        }
        else if(op==2){
            h.eraseValue(val);

        }
        else{
            g<<h.getValue(val)<<'\n';
        }

    }
    return 0;
}