Pagini recente » Cod sursa (job #1983943) | Cod sursa (job #1796211) | Cod sursa (job #3155791) | Cod sursa (job #1550328) | Cod sursa (job #1514007)
#include <fstream>
#include <vector>
using namespace std;
const int kMod = 5e6 + 11;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int Hash[kMod];
void mod(int &v) {
while (v >= kMod) {
v -= kMod;
}
}
int search(int val, vector<int> target) {
for (int j = 1; ; ++j) {
val += 1 + 2 * (j - 1);
mod(val);
int hash = Hash[val];
for (auto itr : target) {
if (itr == hash) {
return val;
}
}
}
}
int main() {
for (int i = 0; i < kMod; ++i) {
Hash[i] = -1;
}
int n; fin >> n;
while (n--) {
int t, x, pos; fin >> t >> x;
if (t == 1) {
pos = search(x, {x, -1, -2});
Hash[pos] = x;
} else if (t == 2) {
pos = search(x, {x, -1});
if (Hash[pos] == x) {
Hash[pos] = -2;
}
} else {
pos = search(x, {x, -1});
if (Hash[pos] == x) {
fout << "1\n";
} else {
fout << "0\n";
}
}
}
return 0;
}