Cod sursa(job #1536729)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 26 noiembrie 2015 16:43:29
Problema Planeta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>
using namespace std;
int n, i, x;
long long k, d[40];
ifstream fin("planeta.in");
ofstream fout("planeta.out");
void f(long long k, int st, int dr){
    if(st <= dr){
        if(st == dr){
            fout<< st <<" ";
        }
        else{
            for(int x = st; x <= dr; x++){
                if(k > d[x - st] * d[dr - x]){
                    k -= d[x - st] * d[dr - x];
                }
                else{
                    fout<< x <<" ";
                    f(k / d[dr - x] + 1, st, x - 1);
                    f(k % d[dr - x] + 1, x + 1, dr);
                    break;
                }
            }
        }
    }
}
int main(){
    fin>> n >> k;
    d[0] = d[1] = 1;
    for(i = 2; i <= n; i++){
        for(x = 1; x <= i; x++){
            d[i] = d[i] +  d[x - 1] * d[i - x];
        }
    }
    f(k, 1, n);
    return 0;
}