Pagini recente » Cod sursa (job #944951) | Cod sursa (job #444786) | Monitorul de evaluare | Cod sursa (job #1756004) | Cod sursa (job #165136)
Cod sursa(job #165136)
#include <stdio.h>
#include <math.h>
long long N, K, M;
int main()
{
long long P, num, L, L2, delta;
long long i;
freopen("farfurii.in", "r", stdin);
freopen("farfurii.out", "w", stdout);
scanf("%lld %lld", &N, &K);
delta = sqrt(1 + 8 * K);
M = (1 + delta) / 2;
P = (M - 1) * M / 2;
L2 = N - M;
if ( K == P)
{
for ( i = 1; i <= L2; i++)
printf("%lld ", i);
for ( i = N; i >= L2 + 1; i--)
printf("%lld ", i);
}
else
{
L = N - M - 1;
for ( i = 1; i <= L; i++)
printf("%lld ", i);
num = N - ( M * ( M+1) / 2 - K);
printf("%lld ", num);
for ( i = N; i > num && i >= L2; i--)
printf("%lld ", i);
for ( i = num - 1; i >= L2; i--)
printf("%lld ", i);
}
return 0;
}