Cod sursa(job #2021401)
| Utilizator | Data | 13 septembrie 2017 17:04:57 | |
|---|---|---|---|
| Problema | Planeta | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <iostream>
#include<fstream>
using namespace std;
ifstream si("planeta.in");
ofstream so("planeta.out");
long long v[100];
void backt(int l,int r,long long k)
{
int i=l;
for(;v[i-l]*v[r-i]<=k&&i<=r;i++)
k-=v[i-l]*v[r-i];
so<<i<<' ';
if(l<i)
backt(l,i-1,k/v[r-i]);
if(i<r)
backt(i+1,r,k%v[r-i]);
}
int main()
{
int n;
long long x;
si>>n>>x;
int i,j;
v[0]=1;
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
v[i]=v[i]+v[i-j]*v[j-1];
backt(1,n,--x);
return 0;
}
