Cod sursa(job #2897731)
| Utilizator | Data | 4 mai 2022 17:55:34 | |
|---|---|---|---|
| Problema | Planeta | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
long long v[32], k;
void rezolvare(int st, int dr, long long k)
{
int i;
for(i=st; v[i-st]*v[dr-i]<=k and i<=dr; i++)
{
k=k-v[i-st]*v[dr-i];
}
g<<i<<" ";
if(i>st)
{
rezolvare(st, i-1, k/v[dr-i]);
}
if(i<dr)
{
rezolvare(i+1, dr, k%v[dr-i]);
}
}
int main()
{
int n;
f>>n>>k;
v[0]=v[1]=1;
for(int i=2; i<=n; i++)
{
for(int j=0; j<i; j++)
{
v[i]+=v[j]*v[i-j-1];
}
}
rezolvare(1, n, --k);
}
