Cod sursa(job #2751872)

Utilizator ChelaruPaulChelaru Paul ChelaruPaul Data 15 mai 2021 23:29:32
Problema Planeta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>

#define ll long long
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
int n;
ll k, c[31];

void calc(int p, int u, ll nr) {
    int i;
    for (i = p; i <= u && c[i - p] * c[u - i] <= nr; ++i) nr -= c[i - p] * c[u - i];
    g << i << ' ';
    if (p < i) calc(p, i - 1, nr / c[u - i]);
    if (i < u) calc(i + 1, u, nr % c[u - i]);
}

int main() {
    f >> n >> k;
    c[0] = 1;
    for (int i = 1; i <= n; ++i)
        for (int j = 0; j < i; ++j)
            c[i] += c[j] * c[i - j - 1];
    calc(1, n, k - 1);
    g.close();
    return 0;
}