#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false)
#define all(a) a.begin(), a.end()
#define F first
#define S second
#define int long long
#define double long double
#define pii pair<int, int>
#define ppp pair<int, pii>
#define dout cout << fixed << setprecision(15)
#define mid ((l + r) / 2)
#define lc (2 * id)
#define rc (lc + 1)
const int maxn = 1e6 + 10, maxm = 1e3 + 10, oo = 1e18 + 10, lg = 8, sq = 350, mod = 1e9 + 7;
int n, k, t;
vector<string> ans = {
"0000", "1110", "0011", "1000",
"1111", "0001", "1100", "0111",
"1010", "0100", "1001", "0010",
"0101", "1011", "0110", "1101"};
//vector<string> ans;
int diff(string a, string b){
int res = 0;
for (int i = 0; i < a.size(); i++)
res += (a[i] != b[i]);
return res;
}
string s;
signed main()
{
threesum;
cin >> n >> k >> t >> s;
for (int b = k + 2; b <= n;b++){
vector<string> v = ans;
for (int i = 0; i < v.size();i++){
reverse(all(ans[i]));
ans[i].push_back('0');
reverse(all(ans[i]));
reverse(all(v[i]));
v[i].push_back('1');
reverse(all(v[i]));
}
int ind = -1;
for (int i = 0; i < v.size();i++)
if(diff(ans.back(), v[i]) == k && diff(ans[0], v[(i - 1 + v.size()) % v.size()]) == k){
ind = i;
break;
}
if(ind == -1){
cout << "-1\n";
break;
}
for (int i = ind; i < v.size();i++)
ans.push_back(v[i]);
for (int i = 0; i < ind;i++)
ans.push_back(v[i]);
}
cout << pow(2, n) << "\n";
for(auto i : ans)
cout << i << "\n";
}
/*
18 3 0
00000000
*/
# | 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... |