제출 #1359680

#제출 시각아이디문제언어결과실행 시간메모리
1359680avahw콤보 (IOI18_combo)C++20
0 / 100
0 ms352 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

std::string guess_sequence(int N) {
  std::string s = "";
  string ref = "ABXY";
  int n = N;
  // get first char
  int coins= press("AB");
  if(coins >= 1){
    if(press("A") == 1){
      s += "A";
    }
    else s += "B";
  }
  else{
    if(press("X") == 1) s += "X";
    else s += "Y";
  }
  if(n == 1) return s;
  // only need to guess three other chars
  string p = "";
  for(auto e : ref) if(e != s[0]) p += e;
  for(int i = 1; i < n - 1; i++){
    string guess = 
    s + p[0] + 
    s + p[1] + p[0] + 
    s + p[1] + p[1] + 
    s + p[1] + p[2];
    int coins = press(guess);
    int gain = coins - i;
    if(gain == 0){
      s += p[2];
    }
    if(gain == 1){
      s += p[0];
    }
    if(gain == 2){
      s += p[1];
    }
  }
  int cs = press(s + "AB");
  if(cs >= N){
    if(press(s + "A") == N){
      s += "A";
    }
    else s += "B";
  }
  else{
    if(press(s + "X") == 1) s += "X";
    else s += "Y";
  }
  return s;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…