Pagini recente » Cod sursa (job #1236219) | Cod sursa (job #2346414) | Cod sursa (job #460306) | Cod sursa (job #2768132) | Cod sursa (job #2748165)
#include <bits/stdc++.h>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int n,i,operatie,x;
struct HashMap{
vector<vector<pair<int,int>>> data;
HashMap(int cap):data(cap){
}
int hash_value(int val){
return val%666013;
}
bool insertv(int key,int value){
int poz=hash_value(key);
for(int i=0;i< data[poz].size();++i)
{
if(key==data[poz][i].first) {
data[poz][i].second = value;
return false;
}
}
data[poz].emplace_back(key,value);
return true;
}
bool eraseval(int key){
int poz=hash_value(key);
for(int i=0;i<data[poz].size();++i)
{
if( key==data[poz][i].first){
data[poz].erase(data[poz].begin()+i);
return true;
}
}
return false;
}
int get(int key){
int poz=hash_value(key);
for(int i=0;i<data[poz].size();++i){
if( key==data[poz][i].first){
return data[poz][i].second;
}
}
return 0;
}
};
int main ()
{
HashMap hs(1000001);
f>>n;
for(i=0;i<n;i++)
{
f>>operatie>>x;
if(operatie==1)
hs.insertv(x,1);
else if(operatie==2)
hs.eraseval(x);
else
g<<hs.get(x)<<'\n';
}
return 0;
}