Pagini recente » Cod sursa (job #1523074) | Cod sursa (job #1306306) | Cod sursa (job #1180037) | Cod sursa (job #974534) | Cod sursa (job #2624239)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define _ACCESS data[hash(x)]
using namespace std;
class Hashmap {
private:
static int prime;
vector<vector<int>> data;
public:
Hashmap() {
for (int i = 0; i < prime; i++) {
data.push_back(vector<int>());
}
}
void insert(int x) {
if (!exists(x)) {
_ACCESS.push_back(x);
}
}
void remove(int x) {
if (exists(x)) {
_ACCESS.erase(find(_ACCESS.begin(), _ACCESS.end(), x));
}
}
bool exists(int x) {
return find(_ACCESS.begin(), _ACCESS.end(), x) != _ACCESS.end();
}
static int hash(int key) {
return key % prime;
}
};
int Hashmap::prime = 666013;
int main()
{
fstream f("hashuri.in", ios::in);
fstream g("hashuri.out", ios::out);
int n;
f >> n;
Hashmap h;
for (int i = 0; i < n; i++) {
int op, x;
f >> op >> x;
switch (op) {
case 1:
h.insert(x);
break;
case 2:
h.remove(x);
break;
case 3:
g << h.exists(x) << "\n";
break;
}
}
f.close();
g.close();
}