#include <bits/stdc++.h>
using namespace std;
int press(string s);
string guess_sequence(int n) {
string s;
string a[4];
if (press("AB")) {
if (press("A")) {
s = "A";
a[0] = "BB", a[1] = "BX", a[2] = "BY", a[3] = "X";
} else {
s = "B";
a[0] = "AA", a[1] = "AX", a[2] = "AY", a[3] = "X";
}
} else {
if (press("X")) {
s = "X";
a[0] = "BB", a[1] = "BA", a[2] = "BY", a[3] = "Y";
} else {
s = "Y";
a[0] = "BB", a[1] = "BA", a[2] = "BX", a[3] = "X";
}
}
if (n == 1) {
return s;
}
for (int i = 1; i < n - 1; i++) {
if(s[0]=='A') {
string ns = s + a[0] + s + a[1] + s + a[2] + s + a[3];
int x = press(ns);
if (x == s.size()) {
s += 'Y';
} else if (x == s.size() + 1) {
s += 'X';
} else {
s += 'B';
}
}else if(s[0]=='B'){
string ns = s + a[0] + s + a[1] + s + a[2] + s + a[3];
int x = press(ns);
if(x==s.size()){
s+="Y";
}else if(x==s.size()+1){
s+="X";
}else {
s+="A";
}
}else if(s[0]=='X'){
string ns = s + a[0] + s + a[1] + s + a[2] + s + a[3];
int x = press(ns);
if(x==s.size()){
s+="A";
}else if(x==s.size()+1){
s+="Y";
}else {
s+="B";
}
}else {
string ns = s + a[0] + s + a[1] + s + a[2] + s + a[3];
int x = press(ns);
if(x==s.size()){
s+="A";
}else if(x==s.size()+1) {
s+="X";
}else {
s+="B";
}
}
}
for (char c : {'A', 'B', 'X', 'Y'}) {
if (press(s + c) == n) {
s += c;
break;
}
}
return s;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |