| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1322321 | cesh | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
string guess_sequence(ll n) {
vector<vector<ll>> is(n, vector<ll>(4));
string f = "AX";
ll c = press(f);
string ans;
vector<char> g;
if (c >= 1) {
f = "A";
c = press(f);
if (c >= 1) {
for (ll i = 1; i < n; i++) is[i][0] = 1;
ans.push_back('A');
g.push_back('X');
g.push_back('B');
g.push_back('Y');
} else {
for (ll i = 1; i < n; i++) is[i][1] = 1;
ans.push_back('X');
g.push_back('A');
g.push_back('B');
g.push_back('Y');
}
} else {
f = "B";
c = press(f);
if (c >= 1) {
for (ll i = 1; i < n; i++) is[i][0] = 1;
ans.push_back('B');
g.push_back('A');
g.push_back('X');
g.push_back('Y');
} else {
for (ll i = 1; i < n; i++) is[i][1] = 1;
ans.push_back('Y');
g.push_back('A');
g.push_back('X');
g.push_back('B');
}
}
for (ll i = 1; i < n - 1; i++) {
string f = ans + g[0] + ans + g[1] + g[0] + ans + g[1] + g[1] + ans + g[1] + g[2];
c = press(f);
if (c >= ans.size() + 2) ans.push_back(g[1]);
else if (c >= ans.size() + 1) ans.push_back(g[0]);
else ans.push_back(g[2]);
}
c = press(ans + g[0]);
if (c >= ans.size() + 1) ans.push_back(g[0]);
else {
c = press(ans + g[1]);
if (c >= ans.size() + 1) ans.push_back(g[1]);
else ans.push_back(g[2]);
}
return ans;
}
