이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
int press(string s);
string guess_sequence(int N) {
if (N == 1) {
int tmp = press("AB");
if (tmp == 1) {
int ttmp = press("A");
if (ttmp == 1) return "A";
else return "B";
}
int ttmp = press("X");
if (ttmp == 1) return "X";
return "Y";
}
string pre = "";
char first;
int tmp = press("AB");
if (tmp >= 1) {
int ttmp = press("A");
if (ttmp == 1) first = 'A';
else first = 'B';
}
else {
int ttmp = press("X");
if (ttmp == 1) first = 'X';
else first = 'Y';
}
pre += first;
for (int i = 1; i < N - 1; ++i) {
if (first == 'A' || first == 'B') {
string put = "";
put += pre;
put += 'X';
put += pre;
put += 'Y';
put += 'Y';
put += pre;
put += 'Y';
put += 'X';
put += pre;
put += 'Y';
if (first == 'A') put += 'B';
else put += 'A';
int preLen = press(put);
if (preLen == i) {
if (first == 'A') pre += 'B';
else pre += 'A';
}
else if (preLen == i + 1) pre += 'X';
else if (preLen == i + 2) pre += 'Y';
continue;
}
string put = "";
put += pre;
put += 'A';
put += pre;
put += 'B';
put += 'B';
put += pre;
put += 'B';
put += 'A';
put += pre;
put += 'B';
if (first == 'X') put += 'Y';
else put += 'X';
int preLen = press(put);
if (preLen == i) {
if (first == 'X') pre += 'Y';
else pre += 'X';
}
else if (preLen == i + 1) pre += 'A';
else if (preLen == i + 2) pre += 'B';
}
if (first == 'A' || first == 'B') {
string put1 = pre;
string put2 = pre;
put1 += 'X';
put2 += 'Y';
if (press(put1) == N) {
pre += 'X';
return pre;
}
if (press(put2) == N) {
pre += 'Y';
return pre;
}
if (first == 'A') {
pre += 'B';
return pre;
}
else {
pre += 'A';
return pre;
}
}
else {
string put1 = pre;
string put2 = pre;
put1 += 'A';
put2 += 'B';
if (press(put1) == N) {
pre += 'A';
return pre;
}
if (press(put2) == N) {
pre += 'B';
return pre;
}
if (first == 'X') {
pre += 'Y';
return pre;
}
else {
pre += 'X';
return pre;
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |