Pagini recente » Cod sursa (job #2835366) | Cod sursa (job #961580) | Cod sursa (job #1760758) | Cod sursa (job #2008726) | Cod sursa (job #1536613)
#include<fstream>
using namespace std;
ifstream cin("planeta.in");
ofstream cout("planeta.out");
unsigned long long D[50];
void rec(unsigned long long n,unsigned long long k,unsigned long long st){
unsigned long long s = 0;
for( unsigned long long x = 1; x <= n; x++ ){
if( s + D[x-1] * D[n-x] >= k ){
cout << x + st << " ";
rec( x-1, (k-s) / D[n-x], st );
rec( n-x, (k-s) % D[n-x], x + st );
}else{
s += D[x] * 1LL * D[n-x];
}
}
}
unsigned long long n ,k , i;
int main(){
cin >> n >> k;
D[0] = D[1] = 1;
for( unsigned long long i = 2 ; i <= n; i++ ){
for( unsigned long long x = 1 ; x <= i; x++ ){
D[i] += D[x-1] * 1LL * D[i-x];
}
}
rec(n,k,0);
return 0;
}