Pagini recente » Cod sursa (job #558563) | Cod sursa (job #1406834) | Cod sursa (job #310282) | Cod sursa (job #679082) | Cod sursa (job #413100)
Cod sursa(job #413100)
#include <cstdio>
#include <vector>
using namespace std;
const int P=666013;
vector<int> hash[P];
vector<int>::iterator find(int a){
int pos=a%P;
vector<int>::iterator it;
for(it=hash[pos].begin();it!=hash[pos].end();it++){
if(*it==a){
return it;
}
}
return hash[pos].end();
}
void add(int a){
if(find(a)==hash[a%P].end()){
hash[a%P].push_back(a);
}
}
void erase(int b){
vector<int>::iterator it=find(b);
if(it!=hash[b%P].end()){
hash[b%P].erase(it);
}
}
int main(){
FILE* fin=fopen("hashuri.in","r");
FILE* fout=fopen("hashuri.out","w");
int n,a,b;
fscanf(fin,"%u",&n);
for(int i=0;i<n;i++){
fscanf(fin,"%u %u",&a,&b);
switch(a){
case 1:
add(b);
break;
case 2:
erase(b);
break;
case 3:
fprintf(fout,"%u\n",(find(b)==hash[b%P].end())?0:1);
break;
default:
break;
}
}
fclose(fin);
fclose(fout);
return 0;
}