Cod sursa(job #1729948)

Utilizator Kln1000Ciobanu Bogdan Kln1000 Data 15 iulie 2016 22:06:50
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int32_t v[1000001];
const int key=21313;


inline int32_t hashcode(int32_t x){
return (x*key+key/x)%1000000;}

inline void hash_add(int32_t x){int32_t i=hashcode(x);
while(v[i]!=0){
if (v[i]==x){break;break;}
++i;
}
v[i]=x;
}

inline void hash_erase(int32_t x){int32_t i=hashcode(x);
while(v[i]!=0){
if (v[i]==x)v[i]=-1;
++i;
}}

inline bool hash_verify(int32_t x){int32_t i=hashcode(x);
while(v[i]!=0){
if (v[i]==x)return 1;
++i;
}
return 0;
}

int main()
{int32_t n,q,x;
f>>n;
for (int i=0;i<n;++i){
f>>q>>x;
if (q==1)
hash_add(x);
else if(q==2)
hash_erase(x);
else if(q==3)
cout<<hash_verify(x)<<'\n';}
return 0;
}