Pagini recente » Cod sursa (job #1345964) | Cod sursa (job #3206083) | Cod sursa (job #555596) | Cod sursa (job #1435771) | Cod sursa (job #29247)
Cod sursa(job #29247)
#include<stdio.h>
#include<math.h>
long n,k,m,i,j,p;
int main()
{freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%ld %ld",&n,&k);
for(p=1;p<n;p=p*2);
for(m=0;p>0;p/=2)
if(m+p<=n&&(m+p)*(m+p-1)<=2*k) m+=p;
k=k-m*(m-1)/2;
if(!k){
for(i=1;i<=n-m;i++)
printf("%ld ",i);
for(i=n;i>n-m;i--)
printf("%ld ",i);}
else {k=m-k;m++;
for(i=1;i<=n-m;i++)
printf("%ld ",i);
printf("%ld ",n-k);
for(i=n;i>n-m;i--)
if(i!=n-k) printf("%ld ",i);}
putchar ('\n');
fclose(stdout);
return 0;}