이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
string tmp[100];
int solve(int l, int r) {
if(l == r) {
return l;
}
int m = (l + r) >> 1;
string combo;
for(int i = m + 1; i <= r; ++i) {
for(char ch : tmp[i]) {
combo.push_back(ch);
}
}
if(press(combo) >= (int)tmp[0].size()) {
return solve(m + 1, r);
}
return solve(l, m);
}
string guess_sequence(int N) {
string BUTTONS = "ABXY";
for(int i = 0; i < 4; ++i) {
tmp[i] = BUTTONS[i];
}
int first_button = solve(0, 3);
swap(BUTTONS[3], BUTTONS[first_button]);
string res(1, BUTTONS[3]);
for(int i = 2; i < N; ++i) {
string ask = res;
ask.push_back(BUTTONS[0]);
for(int j = 0; j < 3; ++j) {
for(char ch : res) {
ask.push_back(ch);
}
ask.push_back(BUTTONS[1]);
ask.push_back(BUTTONS[j]);
}
int o = press(ask);
if(o == i) {
res.push_back(BUTTONS[0]);
}
else if(o == i + 1) {
res.push_back(BUTTONS[1]);
}
else {
res.push_back(BUTTONS[2]);
}
}
if(N > 1) {
int last = 0;
for(int ch = 1; ch < 3; ++ch) {
string ask = res;
ask.push_back(BUTTONS[ch]);
if(press(ask) == N) {
last = ch;
break;
}
}
res.push_back(BUTTONS[last]);
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |