Submission #1342215

#TimeUsernameProblemLanguageResultExecution timeMemory
1342215mastercoder421Combo (IOI18_combo)C++20
5 / 100
1 ms412 KiB
#include "combo.h"
#include <vector>
#include <iostream>

using namespace std;

std::string guess_sequence(int N) {
  int a = press("AB");
  char first;
  if (a==0){
    int b = press("X");
    if (b==0) first = 'Y';
    else first = 'X';
  } else{
    int b = press("A");
    if (b==0) first = 'B';
    else first = 'A';
  }
  vector<char> remaining;
  for (char s: {'A', 'B', 'X', 'Y'}){
    if (s!=first){
      remaining.push_back(s);
    }
  }

  string s = "";
  s+=first;

  for (int i=0; i<N-2; i++){
    string q = (s + remaining[0]) + (s + remaining[1] + remaining[0]) + (s + remaining[1] + remaining[1]) + (s + remaining[1] + remaining[2]);
    int ans = press(q);
    if (ans == s.size()){
      s+=remaining[2];
    } else if (ans==s.size()+1){
       s+=remaining[0];
    } else{
      s+=remaining[1];
    }
  }
  int p = press(s+remaining[0]+s+remaining[1]);
  if (p==s.size()){
    s += remaining[2];
  } else{
    p = press(s+remaining[0]);
    if (p==s.size()){
      s += remaining[1];
    } else{
      s += remaining[0];
    }
  }
  // cout << s << endl;
  return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...