제출 #107287

#제출 시각아이디문제언어결과실행 시간메모리
107287wonyoung콤보 (IOI18_combo)C++14
100 / 100
44 ms628 KiB
#include "combo.h" using namespace std; char binary_guess(string prefix, string btn) { int pn = prefix.length(); if (press(prefix + btn[0] + prefix + btn[1]) > pn) { if (press(prefix + btn[0]) > pn) return btn[0]; return btn[1]; } if (btn.length() > 3 && press(prefix + btn[3]) > pn) return btn[3]; return btn[2]; } string guess_sequence(int N) { string prefix; string buttons = "ABXY"; prefix += binary_guess("", buttons); buttons.erase(buttons.find(prefix[0]), 1); if (N == 1) return prefix; int pn; while ((pn = prefix.length()) < N - 1) { string query_string; query_string += prefix + buttons[1]; for (int i=0; i<3; i++) query_string += prefix + buttons[2] + buttons[i]; prefix += buttons[press(query_string) - pn]; } prefix += binary_guess(prefix, buttons); return prefix; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...