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