Submission #199654

#TimeUsernameProblemLanguageResultExecution timeMemory
199654PankinBinary Subsequences (info1cup17_binary)C++14
100 / 100
746 ms504 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> /* #pragma GCC optimize("unroll-loops") #pragma GCC optimize("Ofast") #pragma GCC optimize("-O3") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") */ #define mp make_pair #define ll long long #define ld long double #define pb push_back #define fast_io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define fs first #define sc second #define getfiles ifstream cin("input.txt"); ofstream cout("output.txt"); #define endl '\n' #define pii pair<int, int> const int INF = 1000000005; const ll BIG_INF = 2000000000000000005; const int mod = 1000000007; const int P = 31; const ld PI = 3.141592653589793238462643; const double eps = 1e-9; using namespace std; using namespace __gnu_pbds; bool valid(int x, int y, int n, int m) { return x >= 0 && y >= 0 && x < n && y < m; } mt19937 rng(1999999973); typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set; inline int good(int z, int o) { if (z + o == 0) return 0; if (o == z) return INF; if (o > z) { return o / (z + 1) + good(z, o % (z + 1)); } else { return z / (o + 1) + good(z % (o + 1), o); } } signed main() { fast_io; int t; cin >> t; while(t--) { int col = 0, k, mn = INF, z; cin >> k; for (int i = 0; i <= k; i++) { int val = good(i, k - i); if (val < INF) { col++; if (val < mn) { mn = val; z = i; } } } cout << col << endl; string s; int o = k - z; while(o + z != 0) { if (o > z) { cout << '1' << " "; o -= z + 1; } else { cout << '0' << " "; z -= o + 1; } } cout << endl; } return 0; }

Compilation message (stderr)

binary.cpp: In function 'int main()':
binary.cpp:74:13: warning: 'z' may be used uninitialized in this function [-Wmaybe-uninitialized]
         int o = k - z;
             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...