Pagini recente » Cod sursa (job #814684) | Cod sursa (job #2983775) | Cod sursa (job #1747097) | Cod sursa (job #2760633) | Cod sursa (job #1409326)
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
long long n,i,j;
long long m,st,dr,mij,k;
int main()
{
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%lld %lld",&n,&k);
st=1; dr=n*1LL;
while (st<=dr)
{
mij=(st+dr)/2;
if ((mij*(mij-1)*1LL)/2==k)
{m=mij; break;}
if ((mij*(mij-1)*1LL)/2<=k)
{m=max(mij,m); st=mij+1;}
else dr=mij-1;
}
if (k==(m*(m-1))/2)
{
for (i=1;i<=n-m;i++)
printf("%lld ",i);
for (i=n;i>=n-m+1;i--)
printf("%lld ",i);
return 0;
}
for (i=1;i<=n-m-1;i++) if (i!=n-(((m+1)*m)/2-k))
printf("%lld ",i);
printf("%lld %lld ",n-(((m+1)*m)/2-k),n);
for (i=n-1;i>=n-m;i--) if (i!=n-(((m+1)*m)/2-k))
printf("%lld ",i);
return 0;
}