Pagini recente » Cod sursa (job #201890) | Cod sursa (job #2247134) | Cod sursa (job #2014249) | Profil Dobricean_Ioan | Cod sursa (job #2751749)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
long long catalan[33],k;
int n;
void elucidam(int stanga,int dreapta,long long k)
{ long total=0,i,x,y;
if(stanga>dreapta) return;
if(stanga==dreapta){g<<stanga<<" ";
return;}
for(i=stanga;i<=dreapta;++i)
{
x=catalan[i-stanga];
y=catalan[dreapta-i];
total+=x*y;
if(total>k) break;
}
k=k-(total-(x*y));
g<<i<<" ";
elucidam(stanga,i-1,k/y);
elucidam(i+1,dreapta,k%y);
}
int main()
{
f>>n>>k;
catalan[0]=1,catalan[1]=1;
for(int i=2;i<=n;++i)
for(int j=1;j<=i;++j)
catalan[i]=catalan[i]+catalan[j-1]*catalan[i-j];
elucidam(1,n,k-1);
return 0;
}