# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1071860 | Rigobertus | Combo (IOI18_combo) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>#include <algorithm>#include <vector>#include <map>#include <set>#include <queue>#include <string>//#define int long long#include "combo.h"using namespace std;string guess_sequence(int n) { string c[4] = {"A", "B", "X", "Y"}; string s = ""; set<int> vis; for (int i = 0; i < 4; i++) { vis.insert(i); } int j; for (int i = 0; i < 4; i++) { if (i == 3 || press(c[i])) { s = c[i]; j = i; vis.erase(i); break; } } while (s.size() < n) { int last = *vis.rbegin(); int k; for (int i = 0; i < 4; i++) { k = i; if (!vis.count(i)) { if (i != j) { vis.insert(i); } continue; } if (i == last) { s += c[i]; break; } string p = s + c[i] + c[i]; int x = press(p); if (x == p.size()) { s = p; break; } else if (x == p.size() - 1) { s += c[i]; vis.erase(i); break; } } for (int i = k+1; i<4; i++) vis.insert(i); } return s;}