Pagini recente » Cod sursa (job #1198634) | Cod sursa (job #2257319) | Cod sursa (job #928268) | Cod sursa (job #2988477) | Cod sursa (job #1614888)
#include <fstream>
using namespace std;
ifstream cin("planeta.in");
ofstream cout("planeta.out");
const int LIM=31;
int n;
long long k, nr[LIM];
void solve(long long x, int st, int dr)
{
for(int i=st; i<=dr; ++i)
if(x>nr[i-st]*nr[dr-i])
x-=nr[i-st]*nr[dr-i];
else
{
cout<<i<<' ';
solve(1+(x-1)/nr[dr-i], st, i-1);
long long xnou=x%nr[dr-i];
if(xnou==0)
xnou=nr[dr-i];
solve(xnou, i+1, dr);
break;
}
}
int main()
{
cin>>n>>k;
nr[0]=nr[1]=1;
for(int i=2; i<=n; ++i)
for(int j=1; j<=i; ++j)
nr[i]+=nr[j-1]*nr[i-j];
solve(k, 1, n);
return 0;
}