Pagini recente » Cod sursa (job #3262177) | Cod sursa (job #2835102) | Cod sursa (job #3195788) | Cod sursa (job #2348125) | Cod sursa (job #2659550)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
class HashMap {
private:
const static int MOD = 666013;
vector <int> table[MOD];
public:
bool Find(int elem) {
int H = elem % MOD;
for(vector <int> :: iterator it = table[H].begin(); it != table[H].end(); it++) {
if(*it == elem)
return true;
}
return false;
}
void Insert(int elem) {
int H = elem % MOD;
if(!Find(elem))
table[H].push_back(elem);
}
void Erase(int elem) {
int H = elem % MOD;
for(vector <int> :: iterator it = table[H].begin(); it != table[H].end(); it++) {
if(*it == elem) {
table[H].erase(it);
return;
}
}
}
};
HashMap hh;
int main() {
int n, i, nr, op;
in >> n;
for(i = 0; i < n; i++) {
in >> op >> nr;
if(op == 1)
hh.Insert(nr);
else if(op == 2)
hh.Erase(nr);
else
out << hh.Find(nr) << '\n';
}
return 0;
}