Submission #1142629

#TimeUsernameProblemLanguageResultExecution timeMemory
1142629mifoCombo (IOI18_combo)C++20
5 / 100
0 ms408 KiB
#include "bits/stdc++.h"
#include "combo.h"

using namespace std;

std::string guess_sequence(int n) {
  string pb = "ABXY";
  string possibilities = "";
  string p = "";
  char prefix;

  if (press("AB") > 0){
    if (press("A") == 1) {p += 'A';}
    else {p += 'B';}
  } else if (press("X") == 1) {p += 'X';}
  else {p+='Y';}

  prefix=p[0];

  for (int i=0;i<pb.size();++i){
    if (pb[i]==prefix) {continue;}
    possibilities+=pb[i];
  }

  int last_ans = 1;
  while(last_ans<n-1)
  {
    string toAdd = "";

    toAdd+=possibilities[0];
    toAdd+=p;
    toAdd+=possibilities[1];

    for(int i=0;i<possibilities.size();++i){
      toAdd+=possibilities[i];
      if (i<possibilities.size()-1){
        toAdd+=p;
        toAdd+=possibilities[1];
      }
    }
    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];}
  
  return p;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...