Cod sursa(job #998404)

Utilizator enedumitruene dumitru enedumitru Data 16 septembrie 2013 22:27:31
Problema Planeta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<fstream>
#define ll long long
using namespace std;
ifstream f("planeta.in"); ofstream g("planeta.out");
int n;
ll k,c[31];
void calc(int p, int u, ll nr)
{   int i;
    for(i=p;i<=u&&c[i-p]*c[u-i]<=nr;++i) nr-=c[i-p]*c[u-i];
    g<<i<<' ';
    if(p<i) calc(p,i-1,nr/c[u-i]);
    if(i<u) calc(i+1,u,nr%c[u-i]);
}
int main()
{   f>>n>>k;
    c[0]=1;
    for(int i=1; i<=n; ++i)
		for(int j=0; j<i; ++j)
			c[i]+=c[j]*c[i-j-1];
    calc(1,n,k-1);
	g.close(); return 0;
}