Pagini recente » Cod sursa (job #2012455) | Cod sursa (job #828883) | Cod sursa (job #148575) | Cod sursa (job #1034299) | Cod sursa (job #2023016)
#include <cstdio>
#include <vector>
const int MOD = (1 << 14) - 1;
std::vector <int> v[MOD];
inline void add(int x) {
int y = x % MOD;
for (int i = 0; i < v[y].size(); ++i) {
if (v[y][i] == x) {
return;
}
}
v[y].push_back(x);
}
inline void remove(int x) {
int y = x % MOD;
for (int i = 0; i < v[y].size(); ++i) {
if (v[y][i] == x) {
v[y][i] = v[y].back();
v[y].pop_back();
return;
}
}
}
inline bool query(int x) {
int y = x % MOD;
for (int i = 0; i < v[y].size(); ++i) {
if (v[y][i] == x) {
return 1;
}
}
return 0;
}
int main() {
int n, op, x;
FILE *fin = fopen("hashuri.in", "r");
fscanf(fin, "%d", &n);
FILE *fout = fopen("hashuri.out", "w");
for (; n > 0; --n) {
fscanf(fin, "%d%d", &op, &x);
if (op == 1) {
add(x);
} else if (op == 2) {
remove(x);
} else {
if (query(x)) {
fprintf(fout, "1\n");
} else {
fprintf(fout, "0\n");
}
}
}
fclose(fin);
fclose(fout);
return 0;
}