Pagini recente » Cod sursa (job #1898023) | Cod sursa (job #853903) | Cod sursa (job #2879350) | Cod sursa (job #3281904) | Cod sursa (job #594610)
Cod sursa(job #594610)
#include<stdio.h>
long long N, K, Nr, i;
long long BS()
{
long long st = 1, dr = N;
while( st <= dr )
{
long long m = (st+dr)/2;
if( m*(m-1)/2 <= K ) st = m+1;
else dr = m-1;
}
return st;
}
int main()
{
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%lld%lld", &N, &K);
Nr = BS();
if( Nr*(Nr-1)/2 != K )
{
for( i=1; i<=N-Nr; i++ )
printf("%lld ", i);
printf("%lld ", N - Nr*(Nr-1)/2 + K );
for( i=0; i<Nr; i++ )
if( i != Nr*(Nr-1)/2 - K )
printf("%lld ", N-i);
}
else
{
for( i=1; i<=N-Nr; i++ )
printf("%lld ", i);
for( i=0; i<Nr; i++ )
printf("%lld ", N-i);
}
printf("\n");
return 0;
}