이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "combo.h"
#include <iostream>
#include <cassert>
std::string guess_sequence(int N) {
  std::string p = "";
  for(const char c : std::string("ABX")) {
      p += c;
      if(press(p)) break;
      else p = "";
  }
  if(p.empty()) p = "Y";
  if(N == 1) return p;
  std::string chars = "";
  for(const char c : std::string("ABXY"))
      if(c && c != p[0])
          chars += c;
  assert(int(chars.size()) == 3);
  for(int i = 1; i < N - 1; ++i) { 
      assert(int(p.size()) == i);
      std::string a, b, c, d;
      a = p + chars[0];
      b = p + chars[1] + chars[0];    
      c = p + chars[1] + chars[1];
      d = p + chars[1] + chars[2];
      switch(press(a + b + c + d) - i) {
          case 0:
              p += chars[2];
              break;
          case 1:
              p += chars[0];
              break;
          case 2:
              p += chars[1];
              break;
          default:
              std::cout << p << ' ' << press(a + b + c + d) << ' ' << i << '\n';
              assert(0);
      }
  }
  assert(int(p.size()) == N - 1);
  for(const char c : chars)
      if(c != chars[0] && press(p + c) == N) {
          p += c;
          break;
      }
  if(int(p.size()) == N - 1) p += chars[0];
  
  assert(int(p.size()) == N);
  return p;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |