Submission #615846

#TimeUsernameProblemLanguageResultExecution timeMemory
615846Minindu2006Combo (IOI18_combo)C++14
97 / 100
56 ms880 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;

std::string guess_sequence(int n)
{
  int ops = 0;
  vector<string> cc{"A", "B", "X", "Y"};
  string ans;
  for(int i=0;i<3;i++)
    if(press(cc[i]))
      ans += cc[i], ops++;
  if(ans.empty())
    ans += cc[3];
  vector<string> controls;
  for(int i=0;i<4;i++)
  {
    if(cc[i] != ans)
      controls.push_back(cc[i]);
  }
  string cur;
  if(n == 1)
    return ans;
  for(int i=1;i<n-1;i++)
  {
    // cout << ans << '\n';
    cur = ans + controls[1] + ans + controls[0] + controls[0] + ans + controls[0] + controls[1] + ans + controls[0] + controls[2];
    // cout << cur.size() << '\n';
    ops++;
    int len = press(cur);
    if(len == i + 2)
      ans += controls[0];
    else if(len == i + 1)
      ans += controls[1];
    else
      ans += controls[2];
  }
  // Since len(cur) > 4N
  if(press(ans + controls[0]) == n)
      ans += controls[0];
  else if(press(ans + controls[1]) == n)
    ans += controls[1];
  else
    ans += controls[2];
  // cout << ops << '\n';
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...