Submission #1316972

#TimeUsernameProblemLanguageResultExecution timeMemory
1316972hyyhCombo (IOI18_combo)C++20
5 / 100
1 ms388 KiB
#include "combo.h"

using namespace std;

std::string guess_sequence(int N) {
  if(N == 1){
    if(press("A")) return "A";
    else if(press("B")) return "B";
    else if(press("X")) return "X";
    else return "Y";
  }
  int a = press("AB");
  string cur = "";
  if(a > 1){
    cur += "AB";
  }
  else if(a == 1){
    if(press("A")) cur += "A";
    else cur += "B";
  }
  else{
    if(press("X")) cur += "X";
    else cur += "Y";
  }
  char arr[3];
  if(cur[0] == 'A') arr[0] = 'B',arr[1] = 'X',arr[2] = 'Y';
  if(cur[0] == 'B') arr[0] = 'A',arr[1] = 'X',arr[2] = 'Y';
  if(cur[0] == 'X') arr[0] = 'A',arr[1] = 'B',arr[2] = 'Y';
  if(cur[0] == 'Y') arr[0] = 'A',arr[1] = 'B',arr[2] = 'X';
  while(cur.size() < N-1){
    string n = "";
    n += cur+arr[1];
    n += cur+arr[2]+arr[0];
    n += cur+arr[2]+arr[1];
    n += cur+arr[2]+arr[2];
    a = press(n);
    if(a == cur.size()) cur+=arr[0];
    else if(a == cur.size()+1) cur+=arr[1];
    else cur+=arr[2];
  }
  if(press(cur+arr[0]) == N) return cur+arr[0];
  else if(press(cur+arr[1]) == N) return cur+arr[1];
  else return cur+arr[2];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...