Submission #1132338

#TimeUsernameProblemLanguageResultExecution timeMemory
1132338stdfloat"The Lyuboyn" code (IZhO19_lyuboyn)C++20
97 / 100
1095 ms27280 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int rnd(int l, int r) { return l + rng() % (r - l + 1); } int n, k, t, z, y; vector<int> v, u; vector<bool> vis; void f(int x) { if (x == z) { if (t == 1 && __builtin_popcount(v[0] ^ v[z - 1]) != k) return; cout << z << '\n'; for (auto i : v) { for (int j = n - 1; j >= 0; j--) cout << ((i >> j) & 1); cout << '\n'; } exit(false); } for (auto i : u) { y = v.back() ^ i; if (vis[y]) continue; vis[y] = true; v.push_back(y); f(x + 1); v.pop_back(); vis[y] = false; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); string s; cin >> n >> k >> t >> s; int x = 0; for (int i = 0; i < n; i++) x += (1 << (n - i - 1)) * (s[i] - '0'); z = 1 << n; vis.assign(z, false); vis[x] = true; v.push_back(x); for (int i = 0; i < z; i++) if (__builtin_popcount(i) == k) u.push_back(i); shuffle(u.begin(), u.end(), rng); f(1); cout << -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...