#include "bits/stdc++.h"
#include "combo.h"
using namespace std;
std::string guess_sequence(int n) {
  string pb = "ABXY";
  string possibilities = "";
  string p = "";
  string s = "";
  if (press("AB") > 0){ // if AB is 1
    if (press("A") == 1) p += 'A'; // if A is 1 add to s A
    else p += 'B'; // else add to s B
  } else if (press("X") == 1) p += 'X'; // if X is 1 add to s X
  else p+='Y'; // else add Y
  s=p;
  for (int i=0;i<pb.size();++i){
    if (pb[i]==s[0]) continue;
    possibilities+=pb[i];
  }
  int last_ans = 1;
  while(true)
  {
    if (p.size()>=n-1){
      break;
    }
    string toAdd = ""; // str to add to not modify p yet
    toAdd+=possibilities[0]; // add first character
    toAdd+=p; // add prefix
    toAdd+=possibilities[1]; // add second character
    // to second character add all the possibilities
    for(int i=0;i<possibilities.size();++i){
      toAdd+=possibilities[i];
      if (i<possibilities.size()-1){
        toAdd+=p;
        toAdd+=possibilities[1];
      }
    }
    // ask
    // if ((p + toAdd).size() > 4*n) break;
    int ans = press(p + toAdd);
    if (ans-last_ans==1){
      p+=possibilities[0];
    } else if (ans-last_ans > 1){
      p+=possibilities[1];
    } else {
      p+=possibilities[2];
    }
    ++last_ans;
  }
  if(press(p + possibilities[0]) - last_ans == 1) p+=possibilities[0];
  else if(press(p + possibilities[1]) - last_ans == 1) p+=possibilities[1];
  else p+=possibilities[2];
  s=p;
  
  return s;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |