Pagini recente » Cod sursa (job #2091095) | Cod sursa (job #790404) | Cod sursa (job #458452) | Cod sursa (job #2203662) | Cod sursa (job #3135626)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
int n, v[31], i, j;
void radacina(int st,int dr,long long k){
long long s=0;
for (i=st;i<dr;i++){
if(s + v[i - st] * v[dr - i] >= k)
break;
s+= v[i - st] * v[dr - i];
}
fout<<i<<" ";
if (st<=i-1) radacina(st,i-1, (k-s-1) / v[dr - i] + 1);
if (i+1<=dr) radacina(i+1,dr, (k-s-1) % v[dr - i] + 1);}
int main()
{
long long k;
fin>>n>>k;
v[0]=1;
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
v[i]+= v[j - 1] * v[i - j];
radacina(1,n,k);
return 0;
}