Pagini recente » elfus/editorial-runda-9 | Cod sursa (job #2271324) | Cod sursa (job #2145162) | Cod sursa (job #2760927) | Cod sursa (job #215753)
Cod sursa(job #215753)
#include <stdio.h>
#include <math.h>
long long n,k,p,i,dif,elem;
int afis[100000];
int main() {
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%lld %lld",&n,&k);
p =(long long) sqrt(k); elem = n;
while (1L * p * (p + 1) / 2 > k) p --;
dif = 1L * k - 1L * p * (p + 1);
for (i = n - p - 1; i <= n - dif; ++i, elem--)
afis[i] = elem;
if (dif) afis[n - p - 2] = elem--;
for (i = n - dif + 1; i <= n; ++i, elem--)
afis[i] = elem;
elem = 1;
for (i = 1; i < n - p - 2; i++, elem++)
afis[i] = elem;
if (!dif) afis[n - p - 2] = elem++;
for (i = 1; i <= n; i++)
printf("%d ",afis[i]);
printf("\n");
return 0;
}