Submission #1018177

#TimeUsernameProblemLanguageResultExecution timeMemory
1018177vjudge1콤보 (IOI18_combo)C++17
100 / 100
25 ms1868 KiB
#include <bits/stdc++.h> #include "combo.h" // #pragma GCC optimize("Ofast") // #pragma GCC target("avx2") // #pragma GCC optimization ("O3") // #pragma GCC optimization ("unroll-loops") // #pragma GCC target("popcnt") #define endl '\n' #define mp make_pair #define pb push_back #define f first #define s second #define fo(i,n) for(auto i =0 ; i < n;i++) #define fore(i,l,r) for(auto i = l; i < r;i++) #define forex(i,r,l) for(auto i = r; i >= l; i--) #define ffo(i,n) forex(i,n-1,0) #define all(x) x.begin(),x.end() #define lsb(x) x&(-x) #define sz(x) (int)x.size() #define gcd(a,b) __gcd(a,b) #define vii vector<ii> #define pq_min(a) priority_queue<a, vector<a>, greater<a>> #define fls cout.flush() using namespace std; using ll = long long; using ull = unsigned long long; using vi = vector<int>; using ii = pair<int,int>; using mii = map<int,int>; using lld = long double; void valid(ll in){cout<<((in)?"YES\n":"NO\n");} ll lcm(ll a, ll b){return (a/gcd(a,b))*b;} // press(p) // int press(string S){ // cout << S << endl;cout.flush(); // int ans; cin >> ans; // return ans; // } string guess_sequence(int N) { string S=""; if(press("AB")){ if(press("A"))S+="A"; else S+="B"; }else{ if(press("X"))S+="X"; else S+="Y"; } for(int i = 1;i < N-1; i++){ string ncad; int c = 0; vector<char> act; for(char a : {'A','B','X','Y'}){ if(a==S[0])continue; act.pb(a); if(c==0){ ncad += S + a; }else if(c==1){ for(char e : {'A','B','X','Y'}){ if((char)e==S[0])continue; ncad+=S+a+e; } } c++; } int qq = press(ncad); if(qq==sz(S)) S+=act.back(); else if(qq==sz(S)+1)S+=act[0]; else S+=act[1]; } if(N!=1){ vi act; for(char e : {'A','B','X','Y'}){ if(e==S[0])continue; act.pb(e); if(sz(act)>2){ S+=e; break; } string ncad = S + e; if(press(ncad)==N){ S+=e; break; } } } return S; } // void test_case(){ // int n;cin >> n; // string ans = guess_sequence(n); // cout << ans << endl; // } // int main(){cin.tie(0)->sync_with_stdio(0); // int t=1; // // cin >> t; // while(t--)test_case(); // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...