Pagini recente » Cod sursa (job #288267) | Cod sursa (job #425169) | Cod sursa (job #469593) | Cod sursa (job #2166368) | Cod sursa (job #570798)
Cod sursa(job #570798)
#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( (long long)( 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("%d%d", &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;
}