제출 #1272276

#제출 시각아이디문제언어결과실행 시간메모리
1272276jungle15콤보 (IOI18_combo)C++17
100 / 100
10 ms480 KiB
#include <bits/stdc++.h> using namespace std; #define Jungle "ioi18p1" #define REP(i,n) for (int i = 0; i < (n); ++i) const int M = 4; const char LET[M] = { 'A', 'B', 'X', 'Y' }; string S; int N; int qcnt = 0; int press(string s); int guess_one(const string &s) { int len = press(s + LET[0] + s + LET[1]); int idx = 2 * (len < (int)s.length() + 1); len = press(s + LET[idx]); idx += (len < (int)s.length() + 1); return idx; } string guess_sequence(int N) { int idx[M]; REP(i, M) idx[i] = i; string s; { int id = guess_one(s); s += LET[id]; swap(idx[id], idx[M - 1]); } REP(i, N - 2) { string z; REP(j, M - 1) { z += s; z.push_back(LET[idx[0]]); z.push_back(LET[idx[j]]); } z += s; z.push_back(LET[idx[1]]); int len = press(z); if (len == i + 3) s.push_back(LET[idx[0]]); else if (len == i + 2) s.push_back(LET[idx[1]]); else s.push_back(LET[idx[2]]); } if (N > 1) { int id = guess_one(s); s += LET[id]; } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...