Submission #1298265

#TimeUsernameProblemLanguageResultExecution timeMemory
1298265tit_manhCombo (IOI18_combo)C++20
100 / 100
10 ms480 KiB
/* 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...