//雪花飄飄北風嘯嘯
//天地一片蒼茫
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
using namespace std;
using namespace __gnu_pbds;
using namespace __gnu_cxx;
#define ll long long
#define ii pair<ll,ll>
#define iii pair<ii,ll>
#define fi first
#define se second
#define endl '\n'
#define debug(x) cout << #x << " is " << x << endl
#define rep(x,start,end) for(auto x=(start)-((start)>(end));x!=(end)-((start)>(end));((start)<(end)?x++:x--))
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)(x).size()
#define indexed_set tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update>
//change less to less_equal for non distinct pbds, but erase will bug
mt19937 rng(chrono::system_clock::now().time_since_epoch().count());
int n,k,t;
string s;
void flip(string &i,int times){
rep(x,1,times+1) i[sz(i)-x]^=1;
}
vector<string> dp(int i,int j){
if (j==1){
vector<string> v;
string st;
rep(x,0,i) st+="0";
v.push_back(st);
rep(x,0,i){
int temp=sz(v);
rep(y,temp,0){
v.push_back(v[y]);
v.back()[x]='1';
}
}
return v;
}
else{
auto v=dp(i-2,j-2);
vector<string> res;
int t=sz(v);
rep(x,0,t){
if (x%2==0) res.push_back("00"+v[x%t]);
else res.push_back("11"+v[x%t]);
}
rep(x,1,t+1){
if (x%2==0) res.push_back("01"+v[x%t]);
else res.push_back("10"+v[x%t]);
}
rep(x,0,t){
if (x%2==0) res.push_back("11"+v[x%t]);
else res.push_back("00"+v[x%t]);
flip(res.back(),j-1);
}
rep(x,1,t+1){
if (x%2==0) res.push_back("10"+v[x%t]);
else res.push_back("01"+v[x%t]);
flip(res.back(),j-1);
}
return res;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin.exceptions(ios::badbit | ios::failbit);
cin>>n>>k>>t;
cin>>s;
if (k%2==0){
cout<<"-1"<<endl;
return 0;
}
auto v=dp(n,k);
int idx;
rep(x,0,sz(v)) if (v[x]==s) idx=x;
cout<<sz(v)<<endl;
rep(x,0,sz(v)) cout<<v[(x+idx)%sz(v)]<<endl;
}
Compilation message
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:103:27: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
103 | rep(x,0,sz(v)) cout<<v[(x+idx)%sz(v)]<<endl;
| ~~^~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
384 KB |
Ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
384 KB |
Ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
384 KB |
Ok |
2 |
Correct |
1 ms |
384 KB |
Ok |
3 |
Correct |
0 ms |
384 KB |
Ok |
4 |
Correct |
0 ms |
384 KB |
Ok |
5 |
Correct |
0 ms |
384 KB |
Ok |
6 |
Correct |
0 ms |
384 KB |
Ok |
7 |
Correct |
0 ms |
384 KB |
Ok |
8 |
Correct |
0 ms |
384 KB |
Ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
21844 KB |
Ok |
2 |
Correct |
26 ms |
10984 KB |
Ok |
3 |
Correct |
1 ms |
384 KB |
Ok |
4 |
Correct |
0 ms |
384 KB |
Ok |
5 |
Correct |
0 ms |
384 KB |
Ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
512 KB |
Ok |
2 |
Correct |
2 ms |
892 KB |
Ok |
3 |
Correct |
31 ms |
13036 KB |
Ok |
4 |
Correct |
16 ms |
6640 KB |
Ok |
5 |
Correct |
1 ms |
384 KB |
Ok |
6 |
Correct |
1 ms |
512 KB |
Ok |
7 |
Correct |
6 ms |
2032 KB |
Ok |
8 |
Correct |
1 ms |
384 KB |
Ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
71 ms |
28996 KB |
Fail, not exactly k bits are different: line = 101983 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
21844 KB |
Ok |
2 |
Correct |
26 ms |
10984 KB |
Ok |
3 |
Correct |
1 ms |
384 KB |
Ok |
4 |
Correct |
0 ms |
384 KB |
Ok |
5 |
Correct |
0 ms |
384 KB |
Ok |
6 |
Correct |
1 ms |
512 KB |
Ok |
7 |
Correct |
2 ms |
892 KB |
Ok |
8 |
Correct |
31 ms |
13036 KB |
Ok |
9 |
Correct |
16 ms |
6640 KB |
Ok |
10 |
Correct |
1 ms |
384 KB |
Ok |
11 |
Correct |
1 ms |
512 KB |
Ok |
12 |
Correct |
6 ms |
2032 KB |
Ok |
13 |
Correct |
1 ms |
384 KB |
Ok |
14 |
Incorrect |
71 ms |
28996 KB |
Fail, not exactly k bits are different: line = 101983 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
38 ms |
12936 KB |
Fail, not exactly k bits are different: line = 117 |
2 |
Halted |
0 ms |
0 KB |
- |