/*
author : TIT_manh
*/
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <stack>
#include <deque>
#include <bitset>
#include <numeric>
#include <functional>
#include <cassert>
#include <sstream>
#include <climits>
#define ll long long
#define FOR(i,l,r) for (int i = l; i <= r; i++)
#define FOD(i,r,l) for (int i = r; i >= l; i--)
#define fi first
#define se second
#define pb push_back
#define endl "\n"
using namespace std;
int n;
int press(string p);
string guess_sequence(int N) {
char d[3];
string res;
if (press("AB")) {
if (press("A")) {
res += 'A';
d[0] = 'B'; d[1] = 'X'; d[2] = 'Y';
}
else {
res += 'B';
d[0] = 'A'; d[1] = 'X'; d[2] = 'Y';
}
}
else {
if (press("X")) {
res += 'X';
d[0] = 'B'; d[1] = 'A'; d[2] = 'Y';
}
else {
res += 'Y';
d[0] = 'B'; d[1] = 'X'; d[2] = 'A';
}
}
if (N == 1) return res;
FOR(i,2,N) {
if (i == N) {
if (press(res + d[0]) == N) res += d[0];
else if (press(res + d[1]) == N) res += d[1];
else res += d[2];
break;
}
string tmp = res + d[0]+d[0] + res + d[0]+d[1] + res + d[0]+d[2] + res + d[1];
int ans = press(tmp);
if (ans == i + 1) res += d[0];
else if (ans == i) res += d[1];
else res += d[2];
}
return res;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |