Pagini recente » Cod sursa (job #1106411) | Cod sursa (job #1902116) | Cod sursa (job #2408888) | Cod sursa (job #2403335) | Cod sursa (job #1460274)
#include <stdio.h>
#include <vector>
#define MAX 1000005
using namespace std;
int n, x, op, i;
vector<int> H[MAX];
void insert(int x);
void erase(int x);
int find(int x);
int main(){
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d%d", &op, &x);
if(op == 1)
insert(x);
else if(op == 2)
erase(x);
else
printf("%d\n", find(x));
}
return 0;
}
void insert(int x){
int p = x % n, ver = 0, j;
for(j = 0; j < H[p].size(); j++)
if(H[p][j] == x){
ver = 1;
break;
}
if(!ver)
H[p].push_back(x);
}
void erase(int x){
int p = x % n, ver = 0, j;
for(j = 0; j < H[p].size(); j++)
if(H[p][j] == x){
ver = 1;
break;
}
if(ver)
H[p].erase(H[p].begin() + j);
}
int find(int x){
int p = x % n, ver = 0, j;
if(!H[p].empty())
for(j = 0; j < H[p].size(); j++)
if(H[p][j] == x){
ver = 1;
break;
}
return ver;
}