Pagini recente » Cod sursa (job #1016364) | Cod sursa (job #2499731) | Cod sursa (job #1511051) | Cod sursa (job #1278025) | Cod sursa (job #518872)
Cod sursa(job #518872)
#include <stdio.h>
int N,M,i,x;
long long K;
int BS(int L,int R)
{
int M=(L+R)/2;
if(L==R) return R;
if((long long)(M*(M-1)/2)<K) return BS(M+1,R);
else return BS(L,M);
}
int main()
{
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%d%lld",&N,&K);
M=BS(1,N);
if((long long)(M*(M-1)/2)==K)
{
for(i=1;i<=N-M;i++)
printf("%d ",i);
for(i=0;i<M;i++)
printf("%d ",N-i);
printf("\n");
}
else
{
x=(long long)(M*(M-1)/2)-K;
for(i=1;i<=N-M;i++)
printf("%d ",i);
printf("%d ",N-x);
for(i=0;i<M;i++)
if(i!=x) printf("%d ",N-i);
printf("\n");
}
return 0;
}