Pagini recente » Cod sursa (job #1763705) | Cod sursa (job #2784372) | Cod sursa (job #1275207) | Cod sursa (job #1915219) | Cod sursa (job #176671)
Cod sursa(job #176671)
#include<fstream.h>
#include<math.h>
int calc(int m)
{
int 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,m,k;
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,p,h;
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;
}