Pagini recente » Cod sursa (job #2440447) | Cod sursa (job #2145569) | Cod sursa (job #2483343) | Cod sursa (job #2950274) | Cod sursa (job #2752618)
#include<bits/stdc++.h>
using namespace std;
ifstream fin( "planeta.in" );
ofstream fout( "planeta.out" );
long long d[40];
void Count_bst( int l, int r, long long k ) {
int root;
for( root = l; root <= r && d[root - l] * d[r - root] <= k; root++ ) {
k -= d[root - l] * d[r - root];
//test = i;
}
fout << root << ' ';
if( l < root )
Count_bst( l, root - 1, k / d[r - root] );
if( root < r )
Count_bst( root + 1, r, k % d[r - root] );
}
int main()
{
int N;
long long K;
fin >> N >> K;
d[0] = 1;
for( int i = 1; i <= N; ++i )
for( int j = 1; j <= i; ++j )
d[i] = d[i] + d[i - j] * d[j - 1];
Count_bst( 1, N, K - 1 );
return 0;
}