Submission #1147455

#TimeUsernameProblemLanguageResultExecution timeMemory
1147455Kaztaev_AlisherCombo (IOI18_combo)C++20
5 / 100
20 ms484 KiB
#include "combo.h" #include <bits/stdc++.h> #define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define all(a) a.begin() , a.end() #define F first #define S second using namespace std; using ll = long long; const ll N = 1e6+5 , inf = 2e9 + 7 , block = 1000; const ll INF = 1e18 , mod = 1e9+7; string guess_sequence(int N) { string s = ""; string s1 = ""; while(s.size() < N) s += "C"; int cur = press("AB"); if(cur == 2) { s[0] = 'A' , s[1] = 'B' , s1 = "BXY"; } else if(cur == 1){ cur = press("A"); if(cur == 1) s[0] = 'A' , s1 = "BXY"; else s[0] = 'B' , s1 = "AXY"; } else { cur = press("X"); if(cur == 1) s[0] = 'X' , s1 = "ABY"; else s[0] = 'Y' , s1 = "ABX"; } // cout << s << "\n"; // return s; while(1){ int pos = -1 , pos2 = -1; for(int i = 0; i < s.size(); i++){ if(s[i] == 'C' && pos == -1) pos = i; else if(s[i] == 'C'){ pos2 = i; break; } } if(pos == -1) break; if(pos2 == -1){ for(int j = 0; j < 3; j++){ if(j == 2){ s[pos] = s1[j]; } else { s[pos] = s1[j]; if(press(s) == s.size()) break; } } // break; } else { string nw = ""; string nw2 = ""; string nw3 = ""; for(int i = 0; i <= pos2; i++){ nw += s[i]; nw2 += s[i]; nw3 += s[i]; } nw[pos] = s1[0] , nw[pos2] = s1[2]; nw2[pos] = s1[1] , nw2[pos2] = s1[2]; nw3[pos] = s1[2] , nw3[pos2] = s1[2]; if(press(nw+nw2+nw3) == pos2+1){ s[pos2] = s1[2]; continue; } nw[pos2] = s1[1]; nw2[pos2] = s1[1]; int res = press(nw+nw2); if(res == pos2+1){ s[pos2] = s1[1]; continue; } if(res == pos+1){ s[pos2] = s1[0]; continue; } s[pos] = s1[2]; continue; } // cout << s << "\n"; // break; } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...