Pagini recente » Cod sursa (job #2694073) | Cod sursa (job #1640922) | Cod sursa (job #2367314) | Cod sursa (job #1649615) | Cod sursa (job #3132332)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
long long d[35];
int a[40],poz;
void fc(int n,long long k,int m){
if(n==0)
return;
int crt=1;
while(k>=d[crt-1]*d[n-crt]){
k-=d[crt-1]*d[n-crt];
crt++;
}
a[++poz]=crt+m;
fc(crt-1,k/d[n-crt],m);
fc(n-crt,k%d[n-crt],m+crt);
}
int main()
{
long long n,k;
f >> n >> k;
d[0]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
d[i]+=d[j-1]*d[i-j];
}
}
k--;
fc(n,k,0);
for(int i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}