제출 #1172494

#제출 시각아이디문제언어결과실행 시간메모리
1172494versesrev콤보 (IOI18_combo)C++20
0 / 100
0 ms400 KiB
// 17:31

#include <string>
#include <vector>
#include <functional>
#include <cassert>
#include "combo.h"

std::string guess_sequence (int N) {
  return {};
  std::vector<char> cs{'A', 'B', 'X', 'Y'};
  char start = std::invoke([&]{
    int v1 = press("AB");
    if (v1 == 1) {
      if (press("A") == 1) return 'A';
      else return 'B';
    }
    else {
      if (press("X") == 1) return 'X';
      else return 'Y';
    }
  });
  
  std::erase(cs, start);
  
  std::string ans;
  ans += start;
  for (int i = 1; i < N - 1; ++i) {
    std::string query = ans + cs[0];
    query += ans + cs[1] + cs[0];
    query += ans + cs[1] + cs[1];
    query += ans + cs[1] + cs[2];
    int val = press(query);
    if (val == ans.length()) {
      ans += cs[2];
    }
    else if (val == ans.length() + 1) {
      ans += cs[0];
    }
    else {
      assert(val == ans.length() + 2);
      ans += cs[1];
    }
  }
  
  std::string query = ans + cs[0] + ans + cs[1];
  if (press(query) == N - 1) {
    ans += cs[2];
  }
  else if(press(ans + cs[0]) == N) {
    ans += cs[0];
  }
  else {
    ans += cs[1];
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...