Cod sursa(job #2899716)

Utilizator DariaClemClem Daria DariaClem Data 9 mai 2022 00:53:12
Problema Planeta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>

using namespace std;

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


void generare(long long val[], long long stanga, long long dreapta, long long aux) {
    long long radacina = stanga;
    while (radacina < dreapta && aux - val[radacina - stanga] * val[dreapta - radacina] >= 0) {
        aux -= val[radacina - stanga] * val[dreapta - radacina];
        radacina += 1;
    }
    fout << radacina << " ";
    if (radacina > stanga) {
        generare(val, stanga, radacina - 1, aux / val[dreapta - radacina]);
    }
    if (radacina < dreapta) {
        generare(val, radacina + 1, dreapta, aux % val[dreapta - radacina]);
    }
}

int main() {
    long long n, k, index1, index2, val[65];
    fin >> n >> k;
    for (index1 = 1; index1 <= n; index1 += 1) {
        for (index2 = 1; index2 <= index1; index2 += 1) {
            val[index1] = val[index1] + val[index1 - index2] * val[index2 - 1];
        }
    }
    generare(val, 1, n, k - 1);
    return 0;
}