Pagini recente » Cod sursa (job #2824903) | Cod sursa (job #2867127) | Cod sursa (job #2736067) | Cod sursa (job #2701399) | Cod sursa (job #2755795)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
long long v[100];
void func(int stanga,int dreapta, long long val)
{
int i=stanga;
while((i<=dreapta) && (v[i-stanga] * v[dreapta-i]<=val)){
val = val - v[i-stanga] * v[dreapta-i];
i++;
}
fout<<i<<" ";
if(stanga<i){
func(stanga, i-1, val / v[dreapta-i]);
}
if(i<dreapta){
func(i+1, dreapta, val % v[dreapta-i]);
}
}
int main()
{
long long n, m;
v[0] = 1;
fin>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=i;++j)
{
v[i]= v[i] + v[i-j]*v[j-1];
}
m = m-1;
func(1,n,m);
}