# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1216412 | moondarkside | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int press(string p){
cout<<"\n"<<p<<"\n";
int score;
cin>>score;
return score;
}
char text[]={'A','B','X','Y'};
string guess_sequence(int N){
string ForNow;
if(press("AB")!=0){
if(press("A")!=0){
ForNow="A";
}
else{
ForNow="B";
}
}
else{
if(press("X")!=0){
ForNow="X";
}
else{
ForNow="Y";
}
}
char Banned=ForNow[0];
std::vector<char> NewText;
for(int i=0;i<4;i++){
if(text[i]!=Banned){
NewText.push_back(text[i]);
}
}
if(N==1){
return ForNow;
}
while(ForNow.size()<N-1){
string Send;
Send+=ForNow+NewText[0]+ForNow+NewText[1]+NewText[0]+ForNow+NewText[1]+NewText[1]+ForNow+NewText[1]+NewText[2];
int score=press(Send);
if(score==ForNow.size()){
ForNow.push_back(NewText[2]);
}
else if(score==ForNow.size()+1){
ForNow.push_back(NewText[0]);
}
else{
ForNow.push_back(NewText[1]);
}
}
if(press(ForNow+NewText[0]+ForNow+NewText[1])!=N){
ForNow+=NewText[2];
return ForNow;
}
if(press(ForNow+NewText[1])!=N){
ForNow+=NewText[0];
return ForNow;
}
ForNow+=NewText[1];
return ForNow;
}