Pagini recente » Cod sursa (job #326588) | Cod sursa (job #861807) | Cod sursa (job #2732009) | Cod sursa (job #2400608) | Cod sursa (job #2623408)
#include <iostream>
#include <vector>
using namespace std;
FILE * fin, * fout;
inline int hhash( int value ){
return value % 10000003;
}
std::vector<int> HASHMAP[1000003];
inline vector<int>::iterator find_value(int x){
int bucket = hhash(x);
vector<int>::iterator it;
for (it = HASHMAP[bucket].begin(); it != HASHMAP[bucket].end(); ++it)
if (*it == x)
return it;
return HASHMAP[bucket].end();
}
inline void insert_value(int x){
int bucket = hhash(x);
if (find_value(x) == HASHMAP[bucket].end())
HASHMAP[bucket].push_back(x);
}
inline void erase_value(int x){
int bucket = hhash(x);
vector<int>::iterator it = find_value(x);
if (it != HASHMAP[bucket].end())
HASHMAP[bucket].erase(it);
}
int main(){
fin = fopen("hashuri.in","r");
fout = fopen("hashuri.out","w");
int N;
fscanf(fin,"%d",&N);
int op;
int num;
for ( int i = 0; i < N; i++ ){
fscanf(fin,"%d%d",&op,&num);
switch(op){
case 1:{
insert_value(num);
break;
}
case 2:{
erase_value(num);
break;
}
case 3:{
if ( HASHMAP[hhash(num)].end() == find_value(num) ){
fprintf(fout,"0\n");
} else {
fprintf(fout,"1\n");
}
break;
}
}
}
fclose(fin);
fclose(fout);
}