Submission #1366208

#TimeUsernameProblemLanguageResultExecution timeMemory
1366208vahagngCombo (IOI18_combo)C++20
100 / 100
7 ms472 KiB
#include "combo.h"
#include <vector>

std::string guess_sequence(int N) {
  std::string res = "";
  int g1 = press("AB");
  if(g1 == 0){
    g1 = press("X");
    if(g1) res = "X";
    else res = "Y";
  } else{
    g1 = press("A");
    if(g1){
      res = "A";
    }else{
      res = "B";
    }
  }
  std::vector<char> v;
  if(res[0] == 'A') {
    v.push_back('B');
    v.push_back('X');
    v.push_back('Y');
  }
  if(res[0] == 'B') {
    v.push_back('A');
    v.push_back('X');
    v.push_back('Y');
  }
  if(res[0] == 'X') {
    v.push_back('B');
    v.push_back('A');
    v.push_back('Y');
  }
  if(res[0] == 'Y') {
    v.push_back('B');
    v.push_back('X');
    v.push_back('A');
  }
  for(int i = 1; i < N - 1; i++){
    std::string cur = "";
    cur = res + v[0] + v[0] + res + v[0] + v[1] + res + v[0] + v[2] + res + v[1];
    int R = press(cur);
    if(R == res.size() + 2){
      res += v[0];
    }
    else if(R == res.size() + 1){
      res += v[1];
    }else{
      res += v[2];
    }
  }
  if(res.size() < N){
    if(press(res + v[2]) == N){
      res += v[2];
    }else{
      if(press(res + v[0]) == N){
        res += v[0];
      }else{
        res += v[1];
      }
    }
  }
  return res;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...