#include <vector>
#include "combo.h"
std::string guess_sequence(int N) {
using namespace std;
string s = "";
// 2 presses
if(press("AB")) s += press("A") ? 'A' : 'B';
else if(press("X")) s += 'X';
else s += 'Y';
vector<char> chars;
if(s[0] != 'A') chars.push_back('A');
if(s[0] != 'B') chars.push_back('B');
if(s[0] != 'X') chars.push_back('X');
if(s[0] != 'Y') chars.push_back('Y');
// N-2 presses
for(int i = 1; i < N-1; ++i){
string t = s;
t += chars[1];
for(char c : chars) t += s + chars[2] + c;
int p = press(t);
s += chars[p-i];
// if we loop i upto N
// s size can be upto N-1
// t size is 3s + 1 + 6 = 3s + 7 = 3(N-1) + 7 = 3N + 4
// which is too big for N = 3, so we use i < N
}
// catch N == 1 case so it doesn't add over N
if(N == 1) return s;
// make up for the cut loop, 2 presses
if(press(s+"A"+s+"B") == N) s += (press(s+"A") == N) ? 'A' : 'B';
else if(press(s+"X") == N) s += 'X';
else s += 'Y';
return s;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |