Submission #1082672

#TimeUsernameProblemLanguageResultExecution timeMemory
1082672KasymKCombo (IOI18_combo)C++17
97 / 100
24 ms1928 KiB
#include "bits/stdc++.h" #include "combo.h" using namespace std; #define ff first #define ss second #define all(v) v.begin(), v.end() #define ll long long #define pb push_back #define pii pair<int, int> #define pli pair<ll, int> #define pll pair<ll, ll> #define tr(i, c) for(auto i = c.begin(); i != c.end(); ++i) #define wr puts("----------------") template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;} template<class T>bool umax(T& a,T b){if(a<b){a=b;return 1;}return 0;} string guess_sequence(int n){ string ans = ""; if(n == 1){ if(press("A")) ans += "A"; else if(press("B")) ans += "B"; else if(press("X")) ans += "X"; else ans += "Y"; return ans; } int x = 0; x = press("A"); if(x){ ans = "A"; for(int i = 2; i < n; ++i){ int s = (int)ans.size(); x = press(ans+"X"+ans+"BX"+ans+"BB"+ans+"BY"); if(x == s+1) ans += "X"; else if(x == s+2) ans += "B"; else ans += "Y"; } if(press(ans+"B") == n) ans += "B"; else if(press(ans+"X") == n) ans += "X"; else ans += "Y"; return ans; } x = press("B"); if(x){ ans = "B"; for(int i = 2; i < n; ++i){ int s = (int)ans.size(); x = press(ans+"X"+ans+"AX"+ans+"AA"+ans+"AY"); if(x == s+1) ans += "X"; else if(x == s+2) ans += "A"; else ans += "Y"; } if(press(ans+"A") == n) ans += "A"; else if(press(ans+"X") == n) ans += "X"; else ans += "Y"; return ans; } x = press("X"); if(x){ ans = "X"; for(int i = 2; i < n; ++i){ int s = (int)ans.size(); x = press(ans+"A"+ans+"BA"+ans+"BB"+ans+"BY"); if(x == s+1) ans += "A"; else if(x == s+2) ans += "B"; else ans += "Y"; } if(press(ans+"A") == n) ans += "A"; else if(press(ans+"B") == n) ans += "B"; else ans += "Y"; return ans; } // s[0] = 'Y' ans = "Y"; for(int i = 2; i < n; ++i){ int s = (int)ans.size(); x = press(ans+"A"+ans+"BA"+ans+"BB"+ans+"BX"); if(x == s+1) ans += "A"; else if(x == s+2) ans += "B"; else ans += "X"; } if(press(ans+"B") == n) ans += "B"; else if(press(ans+"X") == n) ans += "X"; else ans += "A"; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...