Cod sursa(job #2104550)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 11 ianuarie 2018 20:06:19
Problema Planeta Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>
long long d[31],k;
int n;
void ans(int st,int dr,long long coef)
{
    int pos;
    long long z=0;
    pos=st-1;
    while(k-z>0)
    {
        pos++;
        k-=z;
        z=d[pos-st]*d[dr-pos]*coef;
    }
    printf("%d ",pos);
    if(pos>st)
        ans(st,pos-1,coef*d[dr-pos]);
    if(pos<dr)
        ans(pos+1,dr,coef);

}
int main()
{
    int i,j;
    freopen("planeta.in","r",stdin);
    freopen("planeta.out","w",stdout);
    scanf("%d%lld",&n,&k);
    d[1]=d[0]=1;
    d[2]=2;
    for(i=3; i<=n; i++)
        for(j=1; j<=i; j++)
            d[i]+=(d[j-1]*d[i-j]);
    ans(1,n,1);

    return 0;
}