제출 #95572

#제출 시각아이디문제언어결과실행 시간메모리
95572dwsc콤보 (IOI18_combo)C++14
0 / 100
2 ms256 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; string guess_sequence(int N) { if (N == 1){ if (press("AAAA")) return "A"; if (press("BBBB")) return "B"; if (press("XXXX")) return "X"; return "Y"; } string p = ""; string ans = ""; for (int i = 0; i < N; i++) p += 'A'; for (int i = 0; i < N; i++) p += 'B'; for (int i = 0; i < 2*N; i++) p += 'X'; int val = press(p); if (val == 0){ ans += 'Y'; } else{ p = ""; p += 'A'; p += 'B'; for (int i = 0; i< N-2; i++) p += 'A'; p += 'A'; p += 'X'; for (int i = 0; i< N-2; i++) p += 'A'; p += 'A'; p += 'Y'; for (int i = 0; i< N-2; i++) p += 'A'; for (int i = 0; i < N; i++) p += 'B'; int val2 = press(p); if (val2 > 1) ans += 'A'; else if (val2 == 1) ans += 'B'; else ans += 'C'; } vector<char> c; char start = ans[0]; if (ans != "A")c.push_back('A'); if (ans != "B")c.push_back('B'); if (ans != "X")c.push_back('X'); if (ans != "Y")c.push_back('Y'); for (int i = 1; i < N-1; i++){ p = ""; for (int j = 0; j < 4; j++){ for (int k = 0; k < i; k++) p += ans[k]; if (j == 3){ p += c[1]; p += start; } else{ p += c[0]; p += c[j]; } for (int k = i+2; k < N; k++) p += start; } int temp = press(p); //cout << p << " " << temp << "\n"; if (temp == i) ans += c[2]; else if (temp == i+1) ans += c[1]; else ans += c[0]; } p = ""; for (int i = 0; i < 4; i++){ for (int j = 0; j < N-1; j++) p += ans[j]; if (i < 2) p += c[i]; else p += start; } int temp1 = press(p); if (temp1 == N){ p = ""; for (int i = 0; i < 4; i++){ for (int j = 0; j < N-1; j++) p += ans[j]; if (i < 1) p += c[i]; else p += start; } int temp2 = press(p); if (temp2 == N) ans += c[0]; else ans += c[1]; } else{ ans += c[2]; } //cout << ans; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...