제출 #1236703

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

std::string guess_sequence(int N) {
  string sol;
  vector<string> c ={"A", "B", "X", "Y"};
  if(press("AB")){
    if(press("A")){
      sol+="A";
      c.erase(c.begin());
    }
    else{
      sol+="B";
      c.erase(c.begin()+1);
    }
  }
  else{ 
    if(press("X")){
      sol+="X";
      c.erase(c.begin()+2);
    }
    else{
      sol+="Y";
      c.erase(c.begin()+3);
    }
  }
  if(N==1) return sol;
  for(int i = 1; i<N-1; i++){
    string to_guess = sol+c[0]+c[0]+sol+c[0]+c[1]+sol+c[0]+c[2]+sol+c[1];
    int val = press(to_guess);
    assert(val<=i+2);
    if(val == i+2) sol += c[0];
    else if(val == i+1) sol+=c[1];
    else sol+=c[2];
  }

  if(press(sol+c[0]+sol+c[1])==N){
    if(press(sol+c[0]) == N){
      sol += c[0];
    }
    else{
      sol+= c[1];
    }
  }
  else{
    sol+=c[2];
  }
  return sol;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...