Cod sursa(job #1497469)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 6 octombrie 2015 21:10:08
Problema Planeta Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#define MAXN 30
long long d[MAXN];
long long k;
int poz=0;
FILE *fout;
void haibagabaga(long long prod, int st, int dr){
    if(st>dr){
        return ;
    }
    int i=st;
    while(k>prod*d[i-st]*d[dr-i]){
        k-=prod*d[i-st]*d[dr-i];
        i++;
    }
    fprintf(fout, "%d ", i);
    haibagabaga(prod*d[dr-i], st, i-1);
    haibagabaga(prod, i+1, dr);
}
int main(){
    int n, i, j;
    FILE *fin;
    fin=fopen("planeta.in", "r");
    fout=fopen("planeta.out", "w");
    fscanf(fin, "%d%lld", &n, &k);
    d[0]=d[1]=1;
    for(i=2; i<=n; i++){
        for(j=1; j<=i; j++){
            d[i]+=d[i-j]*d[j-1];
        }
    }
    haibagabaga(1, 1, n);
    fclose(fin);
    fclose(fout);
    return 0;
}