Pagini recente » Cod sursa (job #3160079) | Cod sursa (job #2141056) | Cod sursa (job #410052) | Cod sursa (job #2822746) | Cod sursa (job #2765045)
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
class Hash {
private:
static const int nnmb = 5;
vector<int> v[nnmb];
public:
void add_nmb(int);
void del_nmb(int);
void display();
int find_nmb(int);
};
void Hash::add_nmb(int added_number) {
int key_number = added_number % nnmb, okay = 0;
for (auto it:v[key_number])
if (it == added_number)
okay = 1;
if (okay)
return;
v[key_number].push_back(added_number);
}
void Hash::del_nmb(int deleted_number) {
int key_number = deleted_number % nnmb, okay = 0;
for (auto it:v[key_number])
if (it == deleted_number)
okay = 1;
if (!okay)return;
vector<int>::iterator it = find(v[key_number].begin(), v[key_number].end(), deleted_number);
v[key_number].erase(it);
}
void Hash::display() {
for (int i = 0; i < nnmb; i++)
if (!v[i].empty()) {
for (vector<int>::iterator it = v[i].begin(); it != v[i].end(); it++)
cout << (*it) << " ";
cout << endl;
}
}
int Hash::find_nmb(int searched_nmb) {
int key_nmb = searched_nmb % nnmb;
vector<int>::iterator it = find(v[key_nmb].begin(), v[key_nmb].end(), searched_nmb);
if (it != v[key_nmb].end())
return 1;
return 0;
}
Hash H;
int n, x, op;
int main() {
fin >> n;
for (; n != 0; n--) {
fin >> op >> x;
if (op == 1)
H.add_nmb(x);
else if (op == 2)
H.del_nmb(x);
else if (op == 3)
fout << H.find_nmb(x) << '\n';
}
return 0;
}