Cod sursa(job #924004)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int MOD = 666013;
vector <int> Hash[MOD];
vector <int> :: iterator it;
int find(int val) {
int list = val % MOD;
for (it = Hash[list].begin(); it != Hash[list].end(); ++it)
if (*it == val)
return 1;
return 0;
}
void insert(int val) {
int list = val % MOD;
if (find(val) == 0)
Hash[list].push_back(val);
}
void erase(int val) {
int list = val % MOD;
for (it = Hash[list].begin(); it != Hash[list].end(); ++it)
if (*it == val)
Hash[list].erase(it);
}
int main() {
int n, op, val;
f >> n;
for (int i = 1; i <= n; i++) {
f >> op >> val;
if (op == 1)
insert(val);
else if (op == 2)
erase(val);
else
g << find(val) << '\n';
}
return 0;
}