Pagini recente » Cod sursa (job #377675) | Cod sursa (job #1282309) | Cod sursa (job #161251) | Cod sursa (job #1920187) | Cod sursa (job #2032990)
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 666013
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
vector<int> _hash[MOD];
using h_iterator = vector<int>::iterator;
bool find(int key) {
int indx = key % MOD;
for (auto it = _hash[indx].begin(); it != _hash[indx].end(); ++it) {
if (*it == key)
return true;
}
return false;
}
void insert(int key) {
int indx = key % MOD;
if (find(key) == false)
_hash[indx].push_back(key);
}
h_iterator find_iterator(int key) {
int indx = key % MOD;
for (auto it = _hash[indx].begin(); it != _hash[indx].end(); ++it) {
if (*it == key)
return it;
}
return _hash[indx].end();
}
void erase(int key) {
int indx = key % MOD;
h_iterator it = find_iterator(key);
if (it != _hash[indx].end())
_hash[indx].erase(it);
}
int main() {
int n, op, val;
in >> n;
for (int i = 1; i <= n; i++) {
in >> op >> val;
switch (op) {
case 1:
insert(val);
break;
case 2:
erase(val);
break;
case 3:
out << find(val) << "\n";
break;
}
}
in.close();
out.close();
return 0;
}