Submission #131185

#TimeUsernameProblemLanguageResultExecution timeMemory
131185BlagojceCombo (IOI18_combo)C++11
100 / 100
47 ms556 KiB
#include <bits/stdc++.h> #define fr(i, n, m) for(int i = (n); i < (m); i ++) #define pb push_back #define st first #define nd second #define pq priority_queue #define all(x) begin(x),end(x) #define what_is(x) cout<<#x<<' '<<x<<endl #include "combo.h" using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; ll const inf = 1e9; ll const mod = 1e9 + 7; ld const eps = 1e-9; string guess_sequence(int N) { string s = ""; if(press("AB") > 0){ if(press("A") == 1) s += 'A'; else s += 'B'; } else{ if(press("X") == 1) s += 'X'; else s += 'Y'; } if(N == 1) return s; vector<string> buttons = {"A", "B", "X", "Y"}; fr(i, 0, 4){ if(s == buttons[i]){ buttons.erase(buttons.begin() + i); break; } } string attach[4]; attach[0] = buttons[0] + buttons[0]; attach[1] = buttons[0] + buttons[1]; attach[2] = buttons[0] + buttons[2]; attach[3] = buttons[1]; int len = 1; fr(i, 1, N - 1){ int ans = press(s + attach[0] + s + attach[1] + s + attach[2] + s + attach[3]); if(ans == len) s += buttons[2]; else if(ans == len + 1) s += buttons[1]; else s += buttons[0]; len ++; } if(press(s + buttons[0] + s + buttons[1]) == N){ if(press(s + buttons[0]) == N){ s += buttons[0]; } else{ s += buttons[1]; } } else{ s += buttons[2]; } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...