#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <immintrin.h>
#include "combo.h"
#ifndef DEBUG
//#pragma GCC optimize("O3")
//#pragma GCC target("avx2")
#endif
using namespace __gnu_pbds;
using namespace __gnu_cxx;
using namespace std;
//
using ld = long double;
using ll = int;
using i128 = __int128;
using ull = unsigned long long;
using pll = std::pair<ll, ll>;
using cmpl = std::complex<ld>;
template<typename T>
using oset = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;
constexpr ll MOD1 = 998244353;
constexpr ll MOD = 1000000007;
constexpr ll INV2 = 499122177;
constexpr ld PI = 3.141592653589793;
const ld eps = 1e-7;
const ll K = 3;
//const ll C = 200;
std::mt19937 rnd(std::chrono::steady_clock::now().time_since_epoch().count());
ld START_TIME = clock();
std::string ans;
int ask(std::string c){
std::string c1;
std::string pref;
std::reverse(c.begin(), c.end());
for (int i = 0; i < c.size(); ++i) {
pref = c;
std::reverse(pref.begin(), pref.end());
c1 += ans + pref;
c.pop_back();
}
return press(c);
}
string guess_sequence(int N){
ans = "";
std::string cor;
for (int cur = 0; cur < N; cur = ans.size()) {
ll old = ans.size();
if (cur == 0){
if (ask("AB")){
if (ask("B")){
ans += 'B';
cor = "AXY";
}
else{
ans += 'A';
cor = "BXY";
}
}
else{
if (ask("X")){
ans += 'X';
cor = "ABY";
}
else{
ans += 'Y';
cor = "BXA";
}
}
}
else if (cur == N - 1){
if (ask(ans + "AB") - old){
if (ask(ans + "B") - old){
ans += 'B';
cor = "AXY";
}
else{
ans += 'A';
cor = "BXY";
}
}
else{
if (ask(ans + "X") - old){
ans += 'X';
cor = "ABY";
}
else{
ans += 'Y';
cor = "BXA";
}
}
}
else{
char A = cor[0], B = cor[1], X = cor[2];
int dd = ask(ans + X + X + A + A);
if (dd - old == 0){
ans += B;
}
else if (dd - old == 3){
ans += X;
}
else if (dd - old == 4){
ans += X + X + A + A;
}
else if (dd - old == 2){
dd = ask(ans + X + X) - old;
if (dd == 0){
ans += A + A;
}
else if (dd == 1){
ans += X + A;
}
else{
ans += X + X;
}
}
else{
dd = ask(ans + A + X) - old;
if (dd == 0){
ans += X + B;
}
else if (dd == 1){
ans += A + B;
}
else{
ans += A + X;
}
}
}
}
return ans;
}
//signed main() {
//#ifdef DEBUG
// std::freopen("/home/anton/CLionProjects/untitled/input.txt", "r", stdin);
//#else
// // std::freopen("tri.in", "r", stdin); std::freopen("tri.out", "w", stdout);
//#endif
// std::cin.tie(nullptr)->std::ios_base::sync_with_stdio(false);
// int tt = 1;
//// std::cin >> tt;
// while (tt--) {
//// solve();
// }
//#ifdef DEBUG
// std::cerr << '\n';
// ld TIME = (clock() - START_TIME) / CLOCKS_PER_SEC;
// std::cerr << "Time: " << TIME << '\n';
//#endif
//}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |