Pagini recente » Cod sursa (job #1986000) | Cod sursa (job #420604) | Cod sursa (job #3179088) | Cod sursa (job #2499957) | Cod sursa (job #2946357)
#include <fstream>
#include <vector>
#define MODULO 250000
using namespace std;
class HashMap {
private:
vector<int> hash_map[MODULO];
public:
int get_key(int value) {
return value % MODULO;
}
void insert_element(int number) {
if (find_element(number) == -1) {
int key = get_key(number);
hash_map[key].push_back(number);
}
}
void delete_element(int number) {
int element_index = find_element(number);
if (element_index != -1) {
int key = get_key(number);
hash_map[key].erase(hash_map[key].begin() + element_index);
}
}
int find_element(int number) {
int key = get_key(number);
int nr_mapped_values = hash_map[key].size();
for (int i = 0; i < nr_mapped_values; ++i) {
if (hash_map[key][i] == number) {
return i;
}
}
return -1;
}
};
HashMap hash_map;
int main() {
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int nr_operations, operation_type, number;
fin >> nr_operations;
for (int i = 0; i < nr_operations; ++i) {
fin >> operation_type >> number;
if (operation_type == 1) {
hash_map.insert_element(number);
} else if (operation_type == 2) {
hash_map.delete_element(number);
} else {
int number_index = hash_map.find_element(number);
if (number_index == -1) {
fout << 0 << '\n';
continue;
}
fout << 1 << '\n';
}
}
return 0;
}