This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <string>
//#define DEBUG
#ifdef DEBUG
#define watch(x) cerr<<#x<<": "<<(x)<<endl
#else
#define watch(x)
#endif
#include "combo.h"
using namespace std;
char getFirst() {
if (press("AB") >= 1) {
return press("A")==1 ? 'A' : 'B';
} else {
return press("X")==1 ? 'X' : 'Y';
}
}
string valid = "ABXY";
string newValid(string s, char first) {
string r;
for (char c : s) {
if (c != first) {
r.push_back(c);
}
}
return r;
}
int sz(string s) {
return s.size();
}
string guess_sequence(int N) {
string p,S;
char first = getFirst();
S.push_back(first);
watch(first);
if (N > 1) {
valid = newValid(valid,first);
watch(valid);
for (int i=2; i<N; i++) {
int r = press(S+valid[0] + S+valid[1]+valid[0] + S+valid[1]+valid[1] + S+valid[1]+valid[2]);
if (r == sz(S)) {
S.push_back(valid[2]);
} else if (r == sz(S) + 1) {
S.push_back(valid[0]);
} else {
S.push_back(valid[1]);
}
watch(S);
}
if (press(S+valid[0] + S+valid[1]) == sz(S)) {
S.push_back(valid[2]);
} else if (press(S+valid[0]) == sz(S)) {
S.push_back(valid[1]);
} else {
S.push_back(valid[0]);
}
watch(S);
}
return S;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |