Pagini recente » Cod sursa (job #1628753) | Cod sursa (job #2986893) | Cod sursa (job #1773738) | Cod sursa (job #1795889) | Cod sursa (job #1409300)
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 100005
using namespace std;
int n,i,j,k;
int m,st,dr,mij;
int main()
{
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%d %d",&n,&k);
st=1; dr=n;
while (st<=dr)
{
mij=(st+dr)/2;
if ((mij*(mij-1))/2==k)
{m=mij; break;}
if ((mij*(mij-1))/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("%d ",i);
for (i=n;i>=n-m+1;i--)
printf("%d ",i);
return 0;
}
for (i=1;i<=n-m-1;i++) if (i!=n-(((m+1)*m)/2-k))
printf("%d ",i);
printf("%d %d ",n-(((m+1)*m)/2-k),n);
for (i=n-1;i>=n-m;i--) if (i!=n-(((m+1)*m)/2-k))
printf("%d ",i);
return 0;
}