Cod sursa(job #432057)
#include<iostream>
#define NMAX 100001
using namespace std;
int64_t n,k;
int main()
{
int64_t i,j,aux;
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%lld%lld",&n,&k);
for(j=1;j<=n;j++)
if(j*(j-1)/2<=k)
aux=j;
else break;
if(k==aux*(aux-1)/2)
{
for(i=1;i<=n-aux;i++)
printf("%d ",i);
for(i=n;i>=n-aux+1;i--)
printf("%d ",i);
}
else
{
for(i=1;i<=n-aux-1;i++)
printf("%d ",i);
int p=n-(aux*(aux+1)/2-k);
printf("%d ",p);
for(i=n;i>=n-aux;i--)
if(i!=p)
printf("%d ",i);
}
return 0;
}