Pagini recente » Cod sursa (job #107330) | Cod sursa (job #2196506) | Cod sursa (job #1085997) | Cod sursa (job #2397968) | Cod sursa (job #971102)
Cod sursa(job #971102)
#include<fstream>
#define dim 1000009
using namespace std;
int n,l,k,m,a[dim],b[dim],j,mij;
int caut(int st,int dr,int n)
{
while(st<=dr)
{
mij=(st+dr)/2;
if(mij*(mij+1)/2==n)
return n;
else
if(mij*(mij+1)/2<n&&(mij+1)*(mij+2)/2>n)
return mij+1;
else
if(mij*(mij+1)/2<n)
st=mij+1;
else
dr=mij-1;
}
}
int main()
{
ifstream f("farfurii.in");
ofstream g("farfurii.out");
f>>n>>m;
for(int i=1;i<=n;i++)
b[i]=0;
k=caut(1,n+1,m);
j=(k*(k+1))/2-m;
l=n;
for(int i=k;i>0;i--)
if (i!=j)
{
a[l]=n-i;
l--;
}
a[l]=n;
if (j>0)
{
l--;
a[l]=n-j;
}
for(int i=1;i<l;i++)
a[i]=i;
for(int i=1;i<=n;i++)
g<<a[i]<<" ";
}