#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false); cin.tie(nullptr);
int n, k, t;
string s;
cin >> n >> k >> t >> s;
if (!(k & 1)) return cout << -1, 0;
int x = 0;
for (int i = 0; i < n; i++)
x += (1 << (n - i - 1)) * (s[i] - '0');
int z = 1 << n;
vector<bool> vis(z);
vector<int> v;
for (int i = 0; i < z; i++)
if (__builtin_popcount(i) == k) v.push_back(i);
cout << z << '\n';
for (int i = 0; i < z; i++) {
if (i) {
for (auto j : v) {
if (!vis[x ^ j]) {
x ^= j;
break;
}
}
}
assert(!vis[x]);
vis[x] = true;
for (int j = n - 1; j >= 0; j--)
cout << ((x >> j) & 1);
cout << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |