제출 #1236507

#제출 시각아이디문제언어결과실행 시간메모리
1236507gabrupro콤보 (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include "combo.h" #include<bits/stdc++.h> using namespace std; #define ll long long // int press(string p) char bin_search(string curr, int len){ if (press(curr + "A" + curr + "B") > len) { if (press(curr + "A") > len) return 'A'; return 'B'; } if (press(curr + "X") > len) return 'X'; return 'Y'; } string guess_sequence(int N){ string curr = ""; char start = bin_search(curr, 0); curr += start; if (N == 1) return curr; // main code start for (int i=0; i<N-2; i++) { if (start == 'A') { int res = press(curr + 'X' + curr + "BX" + curr + "BY" + curr + "BB"); res -= curr.size(); if (res == 0) curr += 'Y'; else if (res == 1) curr += 'X'; else curr += 'B'; } else if (start == 'B') { int res = press(curr + 'X' + curr + "AX" + curr + "AY" + curr + "AA"); res -= curr.size(); if (res == 0) curr += 'Y'; else if (res == 1) curr += 'X'; else curr += 'A'; } else if (start == 'X') { int res = press(curr + 'Y' + curr + "BA" + curr + "BY" + curr + "BB"); res -= curr.size(); if (res == 0) curr += 'A'; else if (res == 1) curr += 'Y'; else curr += 'B'; } else { int res = press(curr + 'X' + curr + "BX" + curr + "BA" + curr + "BB"); res -= curr.size(); if (res == 0) curr += 'A'; else if (res == 1) curr += 'X'; else curr += 'B'; } } // main code end curr += bin_search(curr, N-1); return curr; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...