Cod sursa(job #292839)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 31 martie 2009 18:39:27
Problema Planeta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <stdio.h>
long long C[32];

void calc(int l,int r,long long k){
  int i=l;
  while ( i <= r && C[i-l] * C[r-i] <= k ){
    k-= C[i-l] * C[r-i]; ++i;
  }
  printf("%d ",i);
  if (l < i) calc(l, i-1, k / C[r-i] );
  if (r > i) calc(i+1, r, k % C[r-i] );
}

int main(){
  freopen("planeta.in","r",stdin); freopen("planeta.out","w",stdout);
  int n,i; long long k;
  scanf("%d %lld",&n,&k);
  k--;
  C[0]=1;
  for (i=1;i<32;++i)C[i]=2*(2*i-1)*C[i-1]/(i+1);
  calc(1,n,k);
return 0;
}