Submission #1131976

#TimeUsernameProblemLanguageResultExecution timeMemory
1131976alexander707070"The Lyuboyn" code (IZhO19_lyuboyn)C++20
8 / 100
76 ms7612 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){
            cout<<1/0;
            return;
        }

        for(int f=pos+1;f<=pos+sz;f++){
            w.push_back(w[f%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)

lyuboyn.cpp: In function 'void extend_code(int)':
lyuboyn.cpp:40:20: warning: division by zero [-Wdiv-by-zero]
   40 |             cout<<1/0;
      |                   ~^~
#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...