Submission #1301923

#TimeUsernameProblemLanguageResultExecution timeMemory
1301923nathlol2Combo (IOI18_combo)C++20
100 / 100
8 ms464 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

std::string guess_sequence(int N){
  char a[3];
  string ans = "";
  if(press("AB")){
    if(press("A")){
      ans += 'A';
      a[0] = 'B';
      a[1] = 'X';
      a[2] = 'Y';
    }else{
      ans += 'B';
      a[0] = 'A';
      a[1] = 'X';
      a[2] = 'Y';
    }
  }else{
    if(press("X")){
      ans += 'X';
      a[0] = 'A';
      a[1] = 'B';
      a[2] = 'Y';
    }else{
      ans += 'Y';
      a[0] = 'A';
      a[1] = 'B';
      a[2] = 'X';
    }
  }
  for(int i = 1;i<N;i++){
    if(i == N - 1){
      if(press(ans + a[0]) == N){
        return ans + a[0];
      }else if(press(ans + a[1]) == N){
        return ans + a[1];
      }else return ans + a[2];
    }
    int c = press(ans + a[0] + a[1] + ans + a[0] + a[2] + ans + a[1] + a[0]);
    if(c == i){
      ans += a[2];
    }else if(c == i + 1){
      int cc = press(ans + a[1] + a[1]);
      if(cc == i){
        ans += a[0];
        ans += a[0];
      }else if(cc == i + 1){
        ans += a[1];
        ans += a[2];
      }else{
        ans += a[1];
        ans += a[1];
      }
      ++i;
    }else{
      int cc = press(ans + a[0] + a[2]);
      if(cc == i){
        ans += a[1];
        ans += a[0];
      }else if(cc == i + 1){
        ans += a[0];
        ans += a[1];
      }else{
        ans += a[0];
        ans += a[2];
      }
      ++i;
    }
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...