Pagini recente » Cod sursa (job #2179155) | Cod sursa (job #1922850) | Cod sursa (job #3237850) | Cod sursa (job #648765) | Cod sursa (job #23142)
Cod sursa(job #23142)
#include<stdio.h>
int main()
{
freopen("farfurii.in", "r", stdin);
freopen("farfurii.out", "w", stdout);
int n, r, i, j;
long k, a, b, m=1;
scanf("%d%d", &n, &k);
if (k==0)
{
for (i=1; i<=n; i++)
printf("%d ", i);
return 0;
}
a=1; b=k;
while (a!=b)
{
m=(b-a)/2+a;
if (m*(m+1)/2<k) a=m;
else b=m;
if (m*(m+1)/2==k) a=b;
if ((m*(m+1)/2<k) &&((m+1)* (m+2)/2>k)) a=b;
}
i=m;
r=k-i*(i+1)/2;
for (j=1; j<=n-i-2; j++)
printf("%d ", j);
if (r==0) {printf("%d ", j); for (j=n; j>n-i-1; j--) printf("%d ", j);}
else {r=i+1-r; printf("%d ", n-r); for (j=n; j>n-i-2; j--)
if (j!=n-r) printf("%d ", j);}
return 0;
}