제출 #1216540

#제출 시각아이디문제언어결과실행 시간메모리
1216540arielcruz2콤보 (IOI18_combo)C++20
0 / 100
5 ms408 KiB
#include "combo.h"
#include "bits/stdc++.h"
using namespace std;
string guess_sequence(int N){
  string inicial;
  vector<string> extra;
  if(press("AB")>0){
    if(press("A")==1){
      inicial="A";
    }else{
      inicial="B";
    }
  }else{
    if(press("X")==1){
      inicial="X";
    }else{
      inicial="Y";
    }
  }
  //cout<<inicial<<"\n";
  if(N==1) return inicial;
  //cout<<inicial<<"\n";
  if(inicial=="A"){
    extra={"B","XB","XX","XY"};
  }else if(inicial=="B"){
    extra={"A","XA","XX","XY"};
  }else if(inicial=="X"){
    extra={"A","BA","BB","BY"};
  }else if(inicial=="Y"){
    extra={"B","BA","BB","BX"};
  }
  for(int i=1;i<N-1;i++){
    if(inicial[0]=='A'){
      int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]);
      if(llamada==i) {
        inicial+='Y';
      }else if(llamada==i+1) {
        inicial+='B';
      }else if(llamada==i+2) {
        inicial+='X';
      }
      //cout<<inicial<<"\n";
    }else if(inicial[0]=='B'){
      int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]);
      if(llamada==i) {
        inicial+='Y';
      }else if(llamada==i+1) {
        inicial+='A';
      }else if(llamada==i+2) {
      inicial+='X';
      }
      //cout<<inicial<<"\n";
    }else if(inicial[0]=='X'){
      int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]);
      if(llamada==i) {
        inicial+='Y';
      }else if(llamada==i+1) {
        inicial+='A';
      }else if(llamada==i+2) {
        inicial+='B';
      }
      //cout<<inicial<<"\n";
    }else if(inicial[0]=='Y'){
      int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]);
      if(llamada==i) {
        inicial+='X';
      }else if(llamada==i+1) {
        inicial+='A';
      }else if(llamada==i+2) {
        inicial+='B';
      }
      //cout<<inicial<<"\n";
    }
  }
  if(press(inicial+"A"+inicial+"B")==N){
    if(press(inicial+"A")==N){
      inicial+='A';
    }else{
      inicial+='B';
    }
  }else{
    if(press(inicial+"X")==N){
      inicial+='X';
    }else{
      inicial+='Y';
    }
  }
  //cout<<inicial<<"\n";
  return inicial;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...