제출 #1078017

#제출 시각아이디문제언어결과실행 시간메모리
1078017PikachudoraEHE콤보 (IOI18_combo)C++14
5 / 100
1 ms352 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
string guess_sequence(int N) {
  string p;
  //p = "";
  //p+="AB";
  //int coins = press(p);
  if(press("AB")==0){
    if(press("X")==0){
      //first = Y
      p = "Y";
      for(int i=1;i<=N-2;i++){
        int ans = press(p+"A"+p+"BA"+p+"BB"+p+"BX");
          if(ans==i){
            p+='X';
          }
          else if(ans==i+1){
            p+='A';
          }
          else{
            p+='B';
          }
      }
      if(press(p+'A')==N){
            p+='A';
      }
      else if(press(p+'B')==N){
          p+='B';
      }
      else{
          p+='X';
      }	
    }
    else{
      //first = x
      p = "X";
      for(int i=1;i<=N-2;i++){
        int ans = press(p+"A"+p+"BA"+p+"BB"+p+"BY");
          if(ans==i){
            p+='Y';
          }
          else if(ans==i+1){
            p+='A';
          }
          else{
            p+='B';
          }
      }
      if(press(p+'A')==N){
            p+='A';
      }
      else if(press(p+'B')==N){
          p+='B';
      }
      else{
          p+='Y';
      }	
    }
  }
  else{
    if(press("A")==0){
      //first = B
      p = "B";
      for(int i=1;i<=N-2;i++){
        int ans = press(p+"A"+p+"YA"+p+"YY"+p+"YX");
          if(ans==i){
            p+='X';
          }
          else if(ans==i+1){
            p+='A';
          }
          else{
            p+='Y';
          }
      }
      if(press(p+'A')==N){
            p+='A';
      }
      else if(press(p+'Y')==N){
          p+='Y';
      }
      else{
          p+='X';
      }	
    }
    else{
      //first = A
      p = "A";
      for(int i=1;i<=N-2;i++){
        int ans = press(p+"Y"+p+"BY"+p+"BB"+p+"BX");
          if(ans==i){
            p+='X';
          }
          else if(ans==i+1){
            p+='Y';
          }
          else{
            p+='B';
          }
      }
      if(press(p+'Y')==N){
            p+='Y';
      }
      else if(press(p+'B')==N){
          p+='B';
      }
      else{
          p+='X';
      }	
    }
  }
  return p;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...