제출 #654784

#제출 시각아이디문제언어결과실행 시간메모리
654784atigun콤보 (IOI18_combo)C++11
100 / 100
39 ms572 KiB
#include<bits/stdc++.h>
#include"combo.h"

using namespace std;
typedef long long ll;

string guess_sequence(int N){
  map<int, string> M = {{1, "A"}, {2, "B"}, {3, "X"}, {4, "Y"}};
  set<int> ava = {1, 2, 3, 4};
  string s = "";
  if(press("AB")){
    if(press("A")){
      s+= "A";
      ava.erase(1);
    }else{
      s+= "B";
      ava.erase(2);
    }
  }else{
    if(press("X")){
      s+= "X";
      ava.erase(3);
    }else{
      s+= "Y";
      ava.erase(4);
    }
  }
  vector<int> ch;
  for(int i : ava)
    ch.push_back(i);
  for(int i = 2; i <= N-1; i++){
    string ask = s + M[ch[0]] + s + M[ch[1]]+M[ch[0]] + s + M[ch[1]]+M[ch[1]] + s + M[ch[1]]+M[ch[2]];
    int ret = press(ask);
    if(ret == i){
      s+= M[ch[0]];
    }else if(ret == i+1){
      s+= M[ch[1]];
    }else if(ret == i-1){
      s+= M[ch[2]];
    }
  }
  if(N > 1){
    if(press(s+M[ch[0]]) == N){
      s+= M[ch[0]];
    }else if(press(s+M[ch[1]]) == N){
      s+= M[ch[1]];
    }else{
      s+= M[ch[2]];
    }
  }
  return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...