#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
int doPress(string s){
  cerr <<"q: "<<s << endl;
  int ans =press(s); 
  cerr <<"ans: "<<ans<<endl;
  return ans;
}
std::string guess_sequence(int N) {
  int n = N;
  string res = "";
  
  // get start
  
  vector<char> allow;
  if(doPress("AB") >= 1){
    cerr<<"case1"<<endl;
    if(doPress("A") == 1){
      res = "A";
      allow = {'B','X','Y'};
    }else{
      res = "B";
      allow = {'A','X','Y'};
    }
  } else{
    cerr<<"case2"<<endl;
    if(doPress("X") == 1){
      res = "X";
      allow = {'B','A','Y'};
    }else{
      res = "Y";
      allow = {'B','X','A'};
    }
  }
  cerr <<"first: " << res << endl;
  for(int i = 1; i < n-1; i++){ 
    string q = res + allow[0] + res + allow[1] + allow[0]+ res + allow[1] + allow[1]+ res + allow[1] + allow[2];
    int ans = doPress(q);
    if(ans == i+1){
      res += allow[0];
    }else if(ans == i+2){
      res += allow[1];
    }else{
      res += allow[2];
    }
    cerr<<"current res: " << res << endl;
  }
  
  if(doPress(res + allow[0]) == n){
    res += allow[0];
  }else if(doPress(res+allow[1]) == n){
    res += allow[1];
  }else{
    res += allow[2];
  }
  return res;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |