#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
string com(string p , vector<string> s){
string ans="";
for(int i = 0; i < s.size(); i++){
ans += p;
ans += s[i];
}
return ans;
}
string com2(char a , char b){
string ans = "";
ans.push_back(a);
ans.push_back(b);
return ans;
}
std::string guess_sequence(int N) {
vector<char> a = {'A' , 'B' , 'X' , 'Y'};
string b = "";
//bool u = 0;
for(int i = 0; i < 1; i++){
string c = com(b , {{a[0]} , {a[1]}});
int d = press(c);
if(d >= i+1){
c = com(b , {{a[0]}});
if(press(c) >= i+1){
b.push_back(a[0]);
}else{
b.push_back(a[1]);
}
}else{
c = com(b , {{a[2]}});
if(press(c) >= i+1){
b.push_back(a[2]);
}else{
b.push_back(a[3]);
}
}
}
vector<char> a2;
for(int i = 0; i < 4; i++){
if(a[i] != b[0])a2.push_back(a[i]);
}
for(int i = 1; i <= N-2; i++){
string c = com(b , {com2(a2[0] , a2[0]) ,com2(a2[0] , a2[1]) , com2(a2[0] , a2[2]) , {a2[1]}});
int d = press(c);
if(d == i){
b.push_back(a2[2]);
}
if(d == i+1){
b.push_back(a2[1]);
}
if(d == i+2){
b.push_back(a2[0]);
}
}
if(N!=1)for(int i = N-1; i < N; i++){
string c = com(b , {{a[0]} , {a[1]}});
int d = press(c);
if(d >= i+1){
c = com(b , {{a[0]}});
if(press(c) >= i+1){
b.push_back(a[0]);
}else{
b.push_back(a[1]);
}
}else{
c = com(b , {{a[2]}});
if(press(c) >= i+1){
b.push_back(a[2]);
}else{
b.push_back(a[3]);
}
}
}
//cout << b << endl;
return b;
}