Cod sursa(job #3135956)

Utilizator dianam2003Manolache Diana Elena dianam2003 Data 4 iunie 2023 20:12:17
Problema Planeta Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;

ifstream fin("planeta.in");
ofstream fout("planeta.out");

long long a[31], N, K;

void apelareRec(int st , int dr , long long nr ){
    int i, rez;
    for( i = st ; i <= dr; i++ )
    {
        if( nr > a[dr - i] * a[i - st] ) nr = nr - a[dr - i] * a[i - st];
        else {
            fout << i << ' ';
            apelareRec(st, i - 1, (nr - 1) / a[dr - i] + 1);
            rez = nr % a[dr - i];
            if(!rez)
            {
                rez = a[dr - i];
            }
            apelareRec(i + 1, dr, rez);
            i = dr + 1;
        }
    }
}

int main() {
    int i, j;
    fin >> N >> K;

    a[0] = 1;
    a[1] = 1;

    for(i = 2 ; i <= N ; i++) {
        for (j = 0; j < i; j++) {
            a[i] = a[i] + a[i - j - 1] * a[j];
        }
    }
    apelareRec(1, N, K);

    return 0;
}