제출 #1019983

#제출 시각아이디문제언어결과실행 시간메모리
1019983CodeAssignment콤보 (IOI18_combo)C++17
0 / 100
0 ms344 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define trav(a, x) for (auto &a : x) #define pb push_back typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count()); string guess_sequence(int N) { ll n = N; vector<char> l = {'A', 'B', 'X', 'Y'}; int coin; auto query = [&](string q) -> void { coin = press(q); }; string st = "Y"; string s = st; rep(i, 0, sz(l) - 1) { query(string(n, l[i])); if (coin > 0) { s = ""; s += l[i]; break; } } vector<char> chars; trav(c, l) if (c != s[0]) chars.pb(c); assert(sz(chars) == 3); rep(i, 0, n-1) { shuffle(all(chars), rnd); bool found = 0; rep(j, 0, 2) { string temp = s; temp += chars[0]; while(sz(temp) < n) temp += st; query(temp); if (coin == sz(s) + 1) { s += chars[j]; found = 1; continue; } } if (!found) s += chars[2]; } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...