Pagini recente » Cod sursa (job #1810311) | Cod sursa (job #452454) | Cod sursa (job #2083620) | Cod sursa (job #322368) | Cod sursa (job #2774682)
#include<stdio.h>
int n,t,p[100001],r,l;
long long k,i;
int main()
{
freopen("farfurii.in","r",stdin),freopen("farfurii.out","w",stdout),scanf("%d%lld",&n,&k);
for(i=1;i<=n&&!r&&!l;++i)
if(i*(i-1)/2==k)
r=i;
else if(i*(i-1)/2<k&&k<i*(i+1)/2)
l=i;
if(r) {
for(i=1;i<=n-r;++i)
p[i]=i;
for(t=n,i=n-r+1;i<=n;++i)
p[i]=t--;
} else {
for(i=1;i<n-l;++i)
p[i]=i;
p[n-l]=n+k-l*(l+1)/2;
for(t=n,i=n-l+1;i<=n;p[i++]=t--)
if(t==p[n-l])
--t;
}
for(i=1;i<=n;++i)
printf("%d ",p[i]);
return 0;
}