Source Code
#include "bits/stdc++.h"
using namespace std;
typedef long long ll;

const int N=10000;
int n;
vector<int>seq(N);

void findSeq(int l, int r, int x){
    if(x==0||l>r) return;
    int mid=l+(r-l)/2;
    seq[mid]=x;
    findSeq(l,mid,x-1);
    findSeq(mid,r,x-1);
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);

    int l;
    cin>>l>>n;
    seq[0]=seq[pow(2,n-1)+1]=n;

    findSeq(0,(1<<(n-1))+2,n-1);

    for(int j=0;j<n;j++){
        cout<<'-';
    }
    cout<<0<<'\n';

    for(int i=1;i<=l;i++){
        for(int j=1;j<pow(2,n-1)+1;j++){
            if(seq[j]==0) continue;
            int temp=seq[j];
            while(temp--) cout<<'-';
            cout<<'\n';
        }
        for(int j=0;j<n;j++){
            cout<<'-';
        }
        cout<<i<<'\n';
    }
}
Copy
Ruler YazanIstatiyeh
GNU G++17
3 ms
1.1 MB
Accepted