Pagini recente » Cod sursa (job #1822482) | Cod sursa (job #2851023) | Cod sursa (job #818089) | Cod sursa (job #260264) | Cod sursa (job #2755661)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long lista[100];
void func(long long stanga,long long dreapta, long long x)
{
int i=stanga;
while(i<=dreapta && lista[i-stanga] * lista[dreapta-i]<=x){
i++;
}
fout<<i<<" ";
x = x - lista[i-stanga] * lista[dreapta-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()
{
int 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);
}