이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
using ll = long long;
string guess_sequence(int n) {
vector<string> pos = {"A", "B", "X", "Y"};
string ans = "";
if(press("AB")) {
if(press("A")) ans += "A";
else ans += "B";
}
else {
if(press("X")) ans += "X";
else ans += "Y";
}
int last = 1;
string res = string(1, ans[0]);
for(int i = 1; i < n; i++) {
if(i == n-1) {
string curr = "", last1 = "";
for(auto it : pos) {
if(it == res) continue;
if(curr.length() == ans.length()+2) {
last1 = ans+it;
}
else {
curr += ans;
curr += it;
}
}
if(press(curr) == last+1) {
string curr1 = ans + curr[ans.length()];
string curr2 = ans + curr[curr.length()-1];
if(press(curr1) == last+1) ans += curr[ans.length()];
else ans += curr[curr.length()-1];
}
else {
ans += last1[last1.length()-1];
}
}
else {
string f = "", s = "", t = "";
for(auto it : pos) {
if(it == res) continue;
if(f == "") f = it;
else if(s == "") s = it;
else t = it;
}
string curr = ans + f + s + ans + f + f + ans + f + t + ans + s;
int k = press(curr);
if(k == last+2) {
ans += f;
}
else if(k == last+1) {
ans += s;
}
else ans += t;
}
++last;
}
if((int)ans.length() != n) {
while(1) {}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |