Pagini recente » Cod sursa (job #1858206) | Cod sursa (job #118225) | Cod sursa (job #387790) | Cod sursa (job #521374) | Cod sursa (job #176679)
Cod sursa(job #176679)
#include<fstream.h>
#include<math.h>
int calc(long long m)
{
long long k=sqrt(2*m);
if ((k+1)*(k+2)<=2*m) k++;
if (k*(k+1)>2*m) k--;
return k;
}
int main()
{
int n; long long k,m;
ifstream f("farfurii.in");
f>>n>>m; f.close();
k=calc(m);
ofstream g("farfurii.out");
if (k*(k+1)/2==m) {
int i;
for (i=1;i<n-k;i++) g<<i<<' ';
for (i=n-k;i<=n;i++) g<<n-(i-(n-k+1))-1<<' ';
}
else {
int v[100002],i,h,p;
for (i=1;i<n-k-1;i++) v[i]=i;
v[n]=n-k-1;
p=m-k*(k+1)/2;
int l=n-1;
while (l>n-k-1)
{
if (l!=n-p) v[l]=v[l+1]+1;
else {
v[l]=v[l+1]+2;
h=v[l]-1;
}
l--;
}
v[l]=h;
for (i=1;i<=n;i++) g<<v[i]<<' ';
}
g.close();
return 0;
}