Pagini recente » Cod sursa (job #1731776) | Benzina | Clasament simulare-cartita-51a | Judete | Cod sursa (job #518864)
Cod sursa(job #518864)
#include <stdio.h>
int N,M,K,x,i;
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%d",&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;
}