Submission #272398

#TimeUsernameProblemLanguageResultExecution timeMemory
272398theStaticMindBinary Subsequences (info1cup17_binary)C++14
100 / 100
452 ms504 KiB
#include<bits/stdc++.h> #define pb push_back #define ii pair<int,int> #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) #define INF 100000000000000000 #define modulo 1000000007 #define mod 998244353 #define int long long int using namespace std; int f(int x, int y){ if(x == 0 || y == 0) return max(x, y); if(x == y) return INF; if(x > y){ return f(x % (y + 1), y) + x / (y + 1); } else{ return f(x, y % (x + 1)) + y / (x + 1); } } void get(int x, int y, string &s){ if(x == 0 && y == 0) return; if(x > y){ s.pb('0'); get(x - y - 1, y, s); } else{ s.pb('1'); get(x, y - x - 1, s); } } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int q; cin >> q; while(q--){ int k, ans = 0; ii mn = {INF, -1}; cin >> k; for(int i = 0; i <= k/2; i++){ int c = f(i, k - i); if(c < INF){ mn = min(mn, {c, i}); ans += 2; } } string s; get(mn.second, k - mn.second, s); cout << ans << "\n"; reverse(all(s)); for(auto p : s) cout << p << " "; cout << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...