제출 #1172492

#제출 시각아이디문제언어결과실행 시간메모리
1172492versesrev콤보 (IOI18_combo)C++20
0 / 100
0 ms396 KiB
// 17:31 #include <string> #include <vector> #include <functional> #include <cassert> #include "combo.h" std::string guess_sequence (int N) { std::vector<char> cs{'a', 'b', 'x', 'y'}; char start = std::invoke([&]{ int v1 = press("ab"); if (v1 == 1) { if (press("a") == 1) return 'a'; else return 'b'; } else { if (press("x") == 1) return 'x'; else return 'y'; } }); std::erase(cs, start); std::string ans; ans += start; for (int i = 1; i < N - 1; ++i) { std::string query = ans + cs[0]; query += ans + cs[1] + cs[0]; query += ans + cs[1] + cs[1]; query += ans + cs[1] + cs[2]; int val = press(query); if (val == ans.length()) { ans += cs[2]; } else if (val == ans.length() + 1) { ans += cs[0]; } else { assert(val == ans.length() + 2); ans += cs[1]; } } std::string query = ans + cs[0] + ans + cs[1]; if (press(query) == N - 1) { ans += cs[2]; } else if(press(ans + cs[0]) == N) { ans += cs[0]; } else { ans += cs[1]; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...