# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1131979 | alexander707070 | "The Lyuboyn" code (IZhO19_lyuboyn) | C++20 | 100 ms | 7612 KiB |
#include<bits/stdc++.h>
#define MAXN 100007
using namespace std;
int n,k,t,start;
string s;
vector<int> seq,w;
void grey_code(int bits){
seq={0};
for(int i=0;i<bits;i++){
int sz=(1<<i);
for(int f=sz-1;f>=0;f--){
seq.push_back(seq[f]^(1<<i));
}
}
w.resize((1<<bits));
w[0]=seq[0];
for(int i=1;i<seq.size();i++){
w[i]=w[i-1]^((1<<bits)-1)^(seq[i]^seq[i-1]);
}
}
void extend_code(int t){
for(int i=0;i<t;i++){
int sz=int(w.size());
int pos=-1;
for(int f=0;f<sz;f++){
if(__builtin_popcount(w[f]^w[0])==k-1 and __builtin_popcount(w[(f+1)%sz]^w[sz-1])==k-1)pos=f;
}
if(pos!=-1){
for(int f=pos+1;f<=pos+sz;f++){
w.push_back(w[f%sz]^sz);
}
}else{
for(int f=0;f<sz;f++){
if(__builtin_popcount(w[f]^w[0])==k-1 and __builtin_popcount(w[(f-1+sz)%sz]^w[sz-1])==k-1)pos=f;
}
if(pos==-1){
cout<<1/0;
return;
}
for(int f=pos-1;f>=pos-sz;f--){
w.push_back(w[(f+sz)%sz]^sz);
}
}
}
}
void prnt(int x){
for(int s=n-1;s>=0;s--){
if((1<<s)&x)cout<<"1";
else cout<<"0";
}
cout<<"\n";
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>k>>t;
cin>>s;
for(int i=0;i<s.size();i++){
start*=2; start+=s[i]-'0';
}
if(k%2==0 or k>=n){
cout<<"-1\n";
return 0;
}
grey_code(k+1);
extend_code(n-(k+1));
for(int i=0;i<w.size();i++)w[i]^=start;
cout<<(1<<n)<<"\n";
for(int i:w)prnt(i);
return 0;
}
Compilation message (stderr)
# | 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... |