Submission #525695

#TimeUsernameProblemLanguageResultExecution timeMemory
525695DeepessonCombo (IOI18_combo)C++17
5 / 100
1 ms288 KiB
#include <bits/stdc++.h>
#include "combo.h"

std::string guess_sequence(int N) {
  std::vector<char> letras = {'A','B','X','Y'};
  std::vector<char> corpo;
  char primeirochar=0;
  {
      std::string a;
      a+=letras[0],a+=letras[1];
      if(press(a)){
        std::string b;
        b+=letras[0];
        if(press(b)){
            primeirochar=letras[0];
        }else primeirochar=letras[1];
      }else {
        std::string b;
        b+=letras[2];
        if(press(b)){
            primeirochar=letras[2];
        }else primeirochar=letras[3];
      }
  }
  for(auto&x:letras){
    if(x!=primeirochar)corpo.push_back(x);
  }
  std::string atual;
  atual+=primeirochar;
  for(int i=1;i!=N-1;++i){
    std::string a,b,c,d;
    a=atual+corpo[0];
    b=c=d=atual+corpo[1];
    b+=corpo[0],c+=corpo[1],d+=corpo[2];
    int q = press(a+b+c+d);
    int ganhou = q-atual.size();
    if(!ganhou){
        atual+=corpo[2];
    }else if(ganhou==1){
        atual+=corpo[0];
    }else atual+=corpo[1];
  }
  {
      std::string g,k;
      g=atual+corpo[0];
      k=atual+corpo[1];
      int b = press(g+k);
      if(b-atual.size()){
        if(press(g)-atual.size()){
            atual+=corpo[0];
        }else atual+=corpo[1];
      }else atual+=corpo[2];
  }
  return atual;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...