# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1193810 | elotelo966 | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
//#define int long long
#define OYY LLONG_MAX
#define faster ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define fi first
#define se second
#define FOR for(int i=1;i<=n;i++)
#define mid (start+end)/2
#define pb push_back
#define lim 400005
const int mod=1000000007;
char dizi[4]={'A','B','X','Y'};
//~ inline int press(string s){
//~ cout<<s<<endl;
//~ int x;cin>>x;
//~ return x;
}
std::string guess_sequence(int N) {
int n=N;
string cev="";
if(press("AB")){
if(press("A"))cev+='A';
else{
cev+='B';
swap(dizi[0],dizi[1]);
}
}
else{
if(press("X")){
cev+='X';
swap(dizi[0],dizi[2]);
}
else{
cev+='Y';
swap(dizi[0],dizi[3]);
}
}
if(n==1){
return cev;
}
for(int i=2;i<=n-1;i++){
string sor="";
for(int j=1;j<=3;j++){
sor+=cev;
sor+=dizi[1];
sor+=dizi[j];
}
sor+=cev;
sor+=dizi[2];
int tut=press(sor);
if(tut==i+1){
cev+=dizi[1];
}
else if(tut==i){
cev+=dizi[2];
}
else{
cev+=dizi[3];
}
}
if(press(cev+dizi[1]+cev+dizi[2])==n){
if(press(cev+dizi[1])==n){
return cev+dizi[1];
}
return cev+dizi[2];
}
else{
return cev+dizi[3];
}
}
//~ int32_t main(){
//~ faster
//~ int n;cin>>n;
//~ cout<<guess_sequence(n)<<'\n';
//~ return 0;
//~ }