Submission #1316018

#TimeUsernameProblemLanguageResultExecution timeMemory
1316018MinhKienCombo (IOI18_combo)C++20
100 / 100
7 ms476 KiB
#include "combo.h"
#include <iostream>
#include <string>

using namespace std;

string guess_sequence(int N) {
  string s = "\0";

  int ask = press("AB");
  if (ask == 2) s = "AB";
  else {
    if (ask == 1) {
      ask = press("A");
      if (ask == 1) s = "A";
      else s = "B";
    } else {
      ask = press("X");
      if (ask == 1) s = "X";
      else s = "Y";
    }
  }

  if (s.size() == N) return s;

  string A = (s[0] == 'A' ? "B" : "A");
  string B = (s[0] <= 'B' ? "X" : "B");
  string C = (s[0] <= 'X' ? "Y" : "X");

  while ((int)s.size() + 1 < N) {
    ask = press(s + A + A + s + A + B + s + A + C + s + B);

    if (ask == (int)s.size() + 2) s += A;
    else if (ask == (int)s.size() + 1) s += B;
    else s += C;
  }

  ask = press(s + A);
  if (ask == N) s += A;
  else {
    ask = press(s + B);
    if (ask == N) s += B;
    else s += C;
  }

  return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...