Submission #1222375

#TimeUsernameProblemLanguageResultExecution timeMemory
1222375jumpCombo (IOI18_combo)C++20
30 / 100
7 ms416 KiB
#include "combo.h"
#include <iostream>
int loop = 0;
std::string guess_sequence(int N) {
  int currentCoins = 1;
  char startsq = 0;
  char currentsq = 0;
  char othersq = 0;
  char lastsq = 0;
  std::string s = "ABXY";
  if(press("A"))startsq='A';
  if(press("B"))startsq='B';
  if(press("X"))startsq='X';
  if(press("Y"))startsq='Y';
  std::string guess_str;
  guess_str.assign(N,startsq);
  while(currentCoins<N){
    currentsq=0;
    for(auto cs:s){
      if(cs!=lastsq&&cs!=startsq&&currentsq!=0){
        othersq=cs;
        break;
      }
      if(cs!=lastsq&&cs!=startsq){
        currentsq=cs;
      }
      //std::cout << cs << currentsq;
    }
    for(int i=currentCoins;i<N;i++){
      guess_str[i]=currentsq;
    }
    int newCoins=press(guess_str);
    if(newCoins<=currentCoins){
      guess_str[currentCoins]=othersq;
      lastsq=currentsq;
      //currentCoins = currentCoins+1;
      for(int i=currentCoins+1;i<N;i++){
        guess_str[i]=othersq;
      }
      currentCoins=press(guess_str);
      lastsq=othersq;
    }
    else{
      currentCoins = newCoins;
      lastsq=currentsq;
    }
    //std::cout << guess_str << ':' << currentsq << ' ' << currentCoins << '\n';
    //if(loop++>10)exit(1);
  }
  return guess_str;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...