Source Code
#include <bits/stdc++.h>
using namespace std;

void print(int x){
	while(x--) cout << "-";
}
// string print2(int x){
// 	string s = "";
// 	while(x--) s += "-";
// 	return s;
// }
void calc(int idx , int num){
	if(num == 1){
		cout << "-" << endl;
		return ;
	}
	// cout << idx << " " << num << endl;
	int add = pow(2,num-2);
	calc(idx - add , num - 1) ; 
	print(num) ; cout << endl;
	calc(idx + add , num - 1);

	
	
	
}
void mountain( int p){
	if(p == 1) return;
	// v.clear();
	// v.resize(pow(2,p-1));
	calc(pow(2,p-2) , p - 1);
	
}

int main() {
	int l , p ; 
	cin >> l >> p ; 
	for(int i=0 ; i<=l ; i++){
		print(p) ; cout << i << endl;
		if(i != l){
			mountain(p);
		}
	}
	return 0;
}
Copy
Ruler Zeina.A
GNU G++17
12 ms
880 KB
Accepted