Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ou.in");
ofstream g("ou.out");
int n, O[100001], i, a,b,c, v[100001],j;
int main()
{
f >> n;
for (i=1; i<=n; ++i) f >> O[i];
for (i=2; i<n; ++i)
{
a=min(i-1, n-i);
b=2*a; c=O[i]/b;
if (c==0)
{
a=O[i]/2; b=2*a; c=O[i]/b;
}
for (j=i-a; j<=i+a; ++j) v[j]=v[j]+c;
O[i]=O[i]%b; v[i]=v[i]-c;
}
for (i=1; i<=n; ++i)
{
g << O[i]+v[i] << " ";
}
}
Explicație: