Cod sursa(job #2751874)

Utilizator HatersMcCristian Ioan HatersMc Data 15 mai 2021 23:43:54
Problema Planeta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
long long a[36];
void rezolv(int stanga , int dreapta ,  long long k ){
    for(int i = stanga ; i <= dreapta ; ++i)
        if (k > a[i - stanga] * a[dreapta - i])
            k -= a[i - stanga] * a[dreapta - i];
        else {
            g << i << " ";
            rezolv(stanga, i - 1, 1 + (k - 1) / a[dreapta - i]);
            long long x = k % a[dreapta - i];
            if (x == 0)
                x = a[dreapta - i];
            rezolv(i + 1, dreapta, x);
            i=dreapta+1;
        }

}

int main() {
    long n,k;
    f>>n;
    f>>k;
    a[0]=1;
    a[1]=1;
    for(int i = 2 ; i <= n ; ++i)
        for( int j = 0 ; j < i ; ++j)
            a[i]+=a[i-j-1]*a[j];
        rezolv(1,n,k);




    return 0;
}