Submission #588397

#TimeUsernameProblemLanguageResultExecution timeMemory
588397Spade1Combo (IOI18_combo)C++14
100 / 100
44 ms572 KiB
#include<bits/stdc++.h> #include "combo.h" #define pii pair<int, int> #define pll pair<long long, long long> #define ll long long #define ld long double #define st first #define nd second #define pb push_back #define INF INT_MAX using namespace std; string btn = "ABXY"; string guess_sequence(int N) { char bg; if (press("AB")) if (press("A")) bg = 'A'; else bg = 'B'; else if (press("X")) bg = 'X'; else bg = 'Y'; if (N == 1) { string ans; ans += bg; return ans; } string rmn; string ans(N, bg); for (int i = 0; i < 4; ++i) { if (btn[i] == bg) continue; rmn += btn[i]; } for (int i = 1; i < N-1; ++i) { string guess; for (int j = 0; j < 4; ++j) guess += ans; guess[i] = rmn[0]; guess[i+1] = rmn[0]; guess[i+N] = rmn[0]; guess[i+N+1] = rmn[1]; guess[i+2*N] = rmn[0]; guess[i+2*N+1] = rmn[2]; guess[i+3*N] = rmn[1]; int k = press(guess); if (k == i) { ans[i] = rmn[2]; } else if (k == i+1) { ans[i] = rmn[1]; } else { ans[i] = rmn[0]; } } for (int i = 0; i < 2; ++i) { ans[N-1] = rmn[i]; if (press(ans) == N) { return ans; } } ans[N-1] = rmn[2]; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...