Pagini recente » Cod sursa (job #2659133) | Cod sursa (job #1349146) | Cod sursa (job #2530719) | Cod sursa (job #615284) | Cod sursa (job #613377)
Cod sursa(job #613377)
#include <vector>
#include <stdio.h>
#define M 666013
using namespace std;
vector<int> H[M];
vector<int>::iterator find(int x){
vector<int>::iterator i;
int list = x % M;
for(i = H[list].begin(); i != H[list].end(); ++i){
if(x == *i){
return i;
}
}
return H[list].end();
}
void add(int x){
int list = x % M;
if(find(x) == H[list].end()){
H[list].push_back(x);
}
}
void del(int x){
int list = x % M;
vector<int>::iterator it = find(x);
if(it != H[list].end()){
H[list].erase(it);
}
}
int main(){
int op, x, n;
freopen("hash.in", "r", stdin);
freopen("hash.out", "w", stdout);
scanf("%d", &n);
while(n--){
scanf("%d %d", &op, &x);
switch(op){
case 1:
add(x);
break;
case 2:
del(x);
break;
case 3:
printf("%d", find(x) != H[x % M].end());
break;
}
}
return 0;
}