Submission #1316975

#TimeUsernameProblemLanguageResultExecution timeMemory
1316975hyyhCombo (IOI18_combo)C++20
100 / 100
8 ms500 KiB
#include "combo.h"

using namespace std;

std::string guess_sequence(int N) {
  int a = press("AB");
  string cur = "";
  if(a != 0){
    if(press("A")) cur += "A";
    else cur += "B";
  }
  else{
    if(press("X")) cur += "X";
    else cur += "Y";
  }
  if(N==1) return cur;
  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...