Pagini recente » Cod sursa (job #990716) | Cod sursa (job #1964134) | Cod sursa (job #2359231) | Cod sursa (job #3167537) | Cod sursa (job #2898149)
#include<fstream>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
long long int p[35],k;
int n;
void sol(int nod,long long k,int val)
{
if(!k || !nod)
return;
long long int cat, rest;
int x;
for(int i=1; i<=nod; i++)
if(p[i-1]*p[nod-i]<k)
k-=p[i-1]*p[nod-i];
else
{
x=i;
break;
}
cat = k/p[nod-x];
rest=k%p[nod-x];
if (rest==0) rest=p[nod-x];
else cat++;
fout<<x+val<<" ";
sol(x-1,cat,val);
sol(nod-x,rest,val+x);
}
int main ()
{
int i,j;
fin>>n>>k;
p[0]=1;
p[1]=1;
for(i=2; i<=n; i++)
for(j=1; j<=i; j++)
p[i]+=p[j-1]*p[i-j];
sol(n,k,0);
return 0;
}