# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
885823 | sq00 | Combo (IOI18_combo) | C++14 | 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.
string guess_sequence(int N) {
string buttons = "", firstBtn = "";
int aCost = press("AX");
if(aCost == 2) {
firstBtn = "A";
buttons = "BYX";
} else if(aCost == 1) {
aCost = press("A");
if(aCost == 1) {
firstBtn = "A";
buttons = "BYX";
} else {
firstBtn = "X";
buttons = "ABY";
}
} else {
int bCost = press("BY");
if(bCost == 2) {
firstBtn = "B";
buttons = "AYX";
} else {
aCost = press("B");
if(aCost == 1) {
firstBtn = "B";
buttons = "AYX";
} else {
firstBtn = "Y";
buttons = "ABX";
}
}
}
string current = firstBtn;
if(current.size() == N) return current;
while(true) {
for(int i = 0; i < (int)buttons.size(); i++) {
string test = current + buttons[i];
if(test.size() < N) {
for(int j = 0; j < (int)buttons.size(); j++) {
test += current + buttons[i + 1] + buttons[j];
}
}
int cost = press(test);
if(cost == current.size() + 1) {
current += buttons[i];
break;
} else if(cost == current.size() + 2) {
current += buttons[i + 1];
break;
} else if(current.size() + 1 < N) {
current += buttons[i + 2];
break;
}
if(i == 1) {
current += buttons[2];
break;
}
}
if(current.size() == N) break;
}
return current;
}