# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1142661 | redamoi | 콤보 (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include "combo.h"
std::string guess_sequence(int N) {
std::string S="";
std::string p="";
std::string f;
int coins = press("AB");
if(coins == 1){
coins = press("A");
if(coins ==1) S+="A";
else S+="B";
}else{
coins = press("X");
if(coins ==1) S+="X";
else S+="Y";
}
f=S;
for(int i=0;i<N-2){
if(f=="A"){
p = S+"B"+S+"XX"+S+"XY"+S+"XB";
coins = press(p);
if(coins == S.size()+1){
S+="B";
}else if(coins == S.size()+2){
S+="X";
}else{
S+="Y"
}
}
if(f=="B"){
p = S+"A"+S+"XX"+S+"XY"+S+"XA";
coins = press(p);
if(coins == S.size()+1){
S+="A";
}else if(coins == S.size()+2){
S+="X";
}else{
S+="Y"
}
}
if(f=="X"){
p = S+"B"+S+"AA"+S+"AY"+S+"AB";
coins = press(p);
if(coins == S.size()+1){
S+="B";
}else if(coins == S.size()+2){
S+="A";
}else{
S+="Y"
}
}
if(f=="Y"){
p = S+"B"+S+"XX"+S+"XA"+S+"XB";
coins = press(p);
if(coins == S.size()+1){
S+="B";
}else if(coins == S.size()+2){
S+="X";
}else{
S+="A"
}
}
}
if(f=="A"){
p=S+"X";
int coins = press(p);
if(coins == s.size()+ 1){
S+="X";
}else{
p=S+"Y"
coins = press(p);
if(coins ==s.size()+ 1) S+="Y";
else S+="B";
}
}
if(f=="B"){
p=S+"X";
int coins = press(p);
if(coins == s.size()+ 1){
S+="X";
}else{
p=S+"Y"
coins = press(p);
if(coins ==s.size()+ 1) S+="Y";
else S+="A";
}
}
if(f=="Y"){
p=S+"X";
int coins = press(p);
if(coins == s.size()+ 1){
S+="X";
}else{
p=S+"A"
coins = press(p);
if(coins ==s.size()+ 1) S+="A";
else S+="B";
}
}
if(f=="X"){
p=S+"A";
int coins = press(p);
if(coins ==s.size()+ 1){
S+="A";
}else{
p=S+"Y"
coins = press(p);
if(coins ==s.size()+ 1) S+="Y";
else S+="B";
}
}
return S;
}