Pagini recente » training_round_1 | Cod sursa (job #1385984) | Cod sursa (job #1343048) | Cod sursa (job #877531) | Cod sursa (job #1520264)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int PRIM = 666013;
vector <int> H[666015];
void tip_Unu(int a) {
int r, n;
bool exista = 0;
r = a % PRIM;
n = H[r].size();
for(int i = 0; i < n; ++ i) {
if(H[r][i] == a) {
exista = 1;
break;
}
}
if(!exista)
H[r].push_back(a);
}
void tip_Doi(int a) {
int r, n;
bool exista = 0;
r = a % PRIM;
n = H[r].size();
for(int i = 0; i < n; ++ i) {
if(H[r][i] == a) {
exista = 1;
swap(H[r][i], H[r][n - 1]);
break;
}
}
if(exista)
H[r].pop_back();
}
void tip_Trei(int a) {
int r, n;
bool exista = 0;
r = a % PRIM;
n = H[r].size();
for(int i = 0; i < n; ++ i) {
if(H[r][i] == a) {
exista = 1;
break;
}
}
printf("%d\n", exista);
}
int main() {
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n, x, a;
scanf("%d", &n);
for(int i = 1; i <= n; ++ i) {
scanf("%d%d", &x, &a);
if(x == 1) {
tip_Unu(a);
} else
if(x == 2) {
tip_Doi(a);
} else {
tip_Trei(a);
}
}
return 0;
}