Submission #1151919

#TimeUsernameProblemLanguageResultExecution timeMemory
1151919at128Combo (IOI18_combo)C++20
100 / 100
8 ms524 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; void __print(int x) {cerr << x;} void __print(long x) {cerr << x;} void __print(long long x) {cerr << x;} void __print(unsigned x) {cerr << x;} void __print(unsigned long x) {cerr << x;} void __print(unsigned long long x) {cerr << x;} void __print(float x) {cerr << x;} void __print(double x) {cerr << x;} void __print(long double x) {cerr << x;} void __print(char x) {cerr << '\'' << x << '\'';} void __print(const char *x) {cerr << '\"' << x << '\"';} void __print(const string &x) {cerr << '\"' << x << '\"';} void __print(bool x) {cerr << (x ? "true" : "false");} template<typename T, typename V> void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';} template<typename T> void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";} void _print() {cerr << "]\n";} template <typename T, typename... V> void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);} #ifndef ONLINE_JUDGE #define debug(x...) cerr << "[" << #x << "] = ["; _print(x) #else #define debug(x...) #endif typedef tree< int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; typedef tree< int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset; #define all(v) ((v).begin()), ((v).end()) #define sz(v) ((int)((v).size())) #define pb push_back typedef long long ll; #include"combo.h" string guess_sequence(int n){ string res; if(press("AB")>0){ if(press("A")>0){ res="A"; }else{ res="B"; } }else{ if(press("X")>0){ res="X"; }else{ res="Y"; } } if(n==1){ return res; } string a="ABXY",ne; for(int i=0;i<4;i++){ if(a[i]!=res[0]){ ne.pb(a[i]); } } while(res.size()<n-1){ string q,t; t=res; t.pb(ne[0]); q+=t; t=res; t.pb(ne[1]); for(int j=0;j<3;j++){ t.pb(ne[j]); q+=t; t.pop_back(); } int p=press(q); if(p==res.size()+1){ res.pb(ne[0]); }else if(p==res.size()+2){ res.pb(ne[1]); }else{ res.pb(ne[2]); } } string t1=res; t1.pb(ne[0]); t1+=res; t1.pb(ne[1]); if(press(t1)==n){ res+=ne[0]; if(press(res)==n){ return res; }else{ res.pop_back(); res+=ne[1]; return res; } }else{ res+=ne[2]; return res; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...