Cod sursa(job #2284899)

Utilizator emiliancsEmilian Stavarache emiliancs Data 17 noiembrie 2018 18:54:06
Problema Planeta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<cstdio>
long long calc[35];
void backt(long long st,long long dr,long long k){
long long i;
for(i=st;i<=dr;i++)
if (calc[i-st]*calc[dr-i]<=k)
k=k-calc[i-st]*calc[dr-i];
else
break;
printf("%lld ",i);
if (st<i)
backt(st,i-1,k/calc[dr-i]);
if (i<dr)
backt(i+1,dr,k%calc[dr-i]);}
int main(){
freopen("planeta.in","r",stdin);
freopen("planeta.out","w",stdout);
long long n,k,i,j;
scanf("%lld%lld",&n,&k);
calc[0]=1;
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
calc[i]=calc[i]+calc[j-1]*calc[i-j];
k=k-1;
backt(1,n,k);
return 0;}