# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1236502 | gabrupro | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
using namespace std;
#define ll long long
// int press(string p)
char bin_search(string curr, int len){
if (press(curr + "A" + curr + "B") > len) {
if (press(curr + "A") > len) return 'A';
return 'B';
}
if (press(curr + "X") > len) return 'X';
return 'Y';
}
string guess_sequence(int N){
string curr = "";
char start = bin_search(curr);
curr += start;
if (N == 1) return curr;
// main code start
for (int i=0; i<n-2; i++) {
if (start == 'A') {
int res = press(curr + 'X' + curr + "BX" + curr + "BY" + curr + "BB");
if (res == 0) curr += 'Y';
else if (res == 1) curr += 'X';
else curr += 'B';
}
else if (start == 'B') {
int res = press(curr + 'X' + curr + "AX" + curr + "AY" + curr + "AA");
if (res == 0) curr += 'Y';
else if (res == 1) curr += 'X';
else curr += 'A';
}
else if (start == 'X') {
int res = press(curr + 'Y' + curr + "BA" + curr + "BY" + curr + "BB");
if (res == 0) curr += 'A';
else if (res == 1) curr += 'Y';
else curr += 'B';
}
else {
int res = press(curr + 'X' + curr + "BX" + curr + "BA" + curr + "BB");
if (res == 0) curr += 'A';
else if (res == 1) curr += 'X';
else curr += 'B';
}
}
// main code end
curr += bin_search(curr);
return curr;
}