Pagini recente » Cod sursa (job #2563813) | Cod sursa (job #1885650) | Cod sursa (job #2121370) | Cod sursa (job #218506) | Cod sursa (job #261975)
Cod sursa(job #261975)
#include <stdio.h>
#define DIM 35
long long d[DIM];
long long n,k,i,j;
FILE *g = fopen("planeta.out","w");
void cautRad(long long left, long long right, long long k) {
long long s,p,T;
if (left>right)
return;
if (left==right) {
fprintf(g,"%lld ",left);
return;
}
s = 0;
for (p=left;p<=right;p++)
if (s+d[p-left]*d[right-p]<k)
s+=(d[p-left]*d[right-p]);
else break;
if (p>right)
p = right;
T = k-s;
fprintf(g,"%lld ",p);
cautRad(left, p-1, (T-1)/d[right-p]+1);
cautRad(p+1,right, (T-1)%d[right-p]+1);
}
int main(){
FILE *f = fopen("planeta.in","r");
fscanf(f,"%lld %lld",&n, &k);
fclose(f);
d[0]=1;
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
d[i] += (d[j-1]*d[i-j]);
cautRad(1,n,k);
fclose(g);
return 0;
}