Pagini recente » Cod sursa (job #1680289) | Cod sursa (job #299188) | Cod sursa (job #3264536) | Cod sursa (job #292504) | Cod sursa (job #2533612)
#include <bits/stdc++.h>
const int prime = 666013;
class HashSet {
public:
HashSet() {}
void insert(int value) {
if (!contains(value)) table[hash(value)].push_back(value);
}
void erase(int value) {
table[hash(value)].remove(value);
}
bool contains(int value) {
int v = hash(value);
for (auto &it:table[v]) if (it == value) return true;
return false;
}
private:
std::list <int> table[prime];
inline int hash(int x) { return (x%prime + prime)%prime; }
} set;
std::ifstream input ("hashuri.in");
std::ofstream output("hashuri.out");
int main()
{
int Q; input >> Q;
int op, x;
while (Q--) {
input >> op >> x;
if (op == 1) set.insert(x);
else if (op == 2) set.erase(x);
else if (op == 3) output << set.contains(x) << '\n';
}
return 0;
}