Pagini recente » Cod sursa (job #272735) | Cod sursa (job #783365) | Cod sursa (job #1966696) | Cod sursa (job #1350915) | Cod sursa (job #2748152)
#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;
}