이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "combo.h"
#include <bits/stdc++.h>
#define endl "\n"
#define yeap cout<<"YES"<<endl
#define nope cout<<"NO"<<endl
#define ll long long
using namespace std;
// std::string guess_sequence(int N) {
// std::string p = "";
// for (int i = 0; i < 4 * N; ++i) {
// p += 'A';
// }
// int coins = press(p);
// std::string S = "";
// for (int i = 0; i < N; ++i) {
// S += 'A';
// }
// return S;
// }
std::string guess_sequence(int N) {
std::string S = "";
ll first_char;
std::string p1 = "AB";
std::string p2 = "A";
std::string p3 = "X";
ll a = press(p1);
if(a>=1){
ll b = press(p2);
if(b==1){
S += "A";
first_char = 1;
} else {
S += "B";
first_char = 2;
}
} else {
ll b = press(p3);
if(b==1){
S += "X";
first_char = 3;
} else {
S += "Y";
first_char = 4;
}
}
// cout<<first_char<<endl;;
ll cnt = 1;
for(int i=3; i<=N; i++){
std::string temp_string = "";
std::string temp_string1 = "";
std::string temp_string2 = "";
std::string temp_string3 = "";
if(first_char==1){
temp_string1 += S;
temp_string1 += "BB";
temp_string2 += S;
temp_string2 += "BX";
temp_string3 += S;
temp_string3 += "BY";
temp_string += S;
temp_string += "X";
temp_string += temp_string1+temp_string2+temp_string3;
ll aa = press(temp_string);
if(aa==cnt+2){
S += "B";
cnt++;
} else if(aa==cnt+1){
S += "X";
cnt++;
} else {
S += "Y";
cnt++;
}
} else if(first_char==2){
temp_string1 += S;
temp_string1 += "AA";
temp_string2 += S;
temp_string2 += "AX";
temp_string3 += S;
temp_string3 += "AY";
temp_string += S;
temp_string += "X";
temp_string += temp_string1+temp_string2+temp_string3;
ll aa = press(temp_string);
if(aa==cnt+2){
S += "A";
cnt++;
} else if(aa==cnt+1){
S += "X";
cnt++;
} else {
S += "Y";
cnt++;
}
} else if(first_char==3){
temp_string1 += S;
temp_string1 += "AA";
temp_string2 += S;
temp_string2 += "AB";
temp_string3 += S;
temp_string3 += "AY";
temp_string += S;
temp_string += "Y";
temp_string += temp_string1+temp_string2+temp_string3;
ll aa = press(temp_string);
if(aa==cnt+2){
S += "A";
cnt++;
} else if(aa==cnt+1){
S += "Y";
cnt++;
} else {
S += "B";
cnt++;
}
} else if(first_char==4){
temp_string1 += S;
temp_string1 += "AA";
temp_string2 += S;
temp_string2 += "AB";
temp_string3 += S;
temp_string3 += "AX";
temp_string += S;
temp_string += "X";
temp_string += temp_string1+temp_string2+temp_string3;
ll aa = press(temp_string);
if(aa==cnt+2){
S += "A";
cnt++;
} else if(aa==cnt+1){
S += "X";
cnt++;
} else {
S += "B";
cnt++;
}
}
cout<<temp_string<<endl;
}
std::string last2 = "";
std::string last1 = "";
if(N==1){
return S;
} else {
if(first_char==1){
last2 += S;
last2 += "B";
last1 += last2;
last1 += S;
last1 += "Y";
last2 += S;
last2 += "X";
ll aa = press(last2);
ll bb = press(last1);
if(aa==cnt){
S += "Y";
} else {
if(bb==cnt){
S += "X";
} else {
S += "B";
}
}
} else if(first_char==2){
last2 += S;
last2 += "A";
last1 += last2;
last1 += S;
last1 += "Y";
last2 += S;
last2 += "X";
ll aa = press(last2);
ll bb = press(last1);
if(aa==cnt){
S += "Y";
} else {
if(bb==cnt){
S += "X";
} else {
S += "A";
}
}
} else if(first_char==3){
last2 += S;
last2 += "A";
last1 += last2;
last1 += S;
last1 += "Y";
last2 += S;
last2 += "B";
ll aa = press(last2);
ll bb = press(last1);
if(aa==cnt){
S += "Y";
} else {
if(bb==cnt){
S += "B";
} else {
S += "A";
}
}
} else if(first_char==4){
last2 += S;
last2 += "A";
last1 += last2;
last1 += S;
last1 += "B";
last2 += S;
last2 += "X";
ll aa = press(last2);
ll bb = press(last1);
if(aa==cnt){
S += "B";
} else {
if(bb==cnt){
S += "X";
} else {
S += "A";
}
}
}
// cout<<S<<endl;
return S;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |