Pagini recente » Cod sursa (job #1617885) | Cod sursa (job #136591) | Cod sursa (job #192291) | Cod sursa (job #1376070) | Cod sursa (job #518871)
Cod sursa(job #518871)
#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(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(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=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;
}