使用①和②即可解此题。
```cpp
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e6+5;
int a[maxn],x[maxn];
int n;
inline int get()
{
int x=0;int f=1;char c=getchar();
while(!isdigit(c)) { if(c=='-') f=-1; c=getchar(); }
while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
return x*f;
}
signed main()
{
n=get();
int x_ba=0;
for(register int i=1;i<=n;i++) {
a[i]=get();
x_ba+=a[i];
}
x_ba/=n;
for(register int i=1;i<=n;i++) {
x[i]=x[i-1]-a[i]+x_ba;
}
sort(x+1,x+1+n);
int m=x[n/2+1],ans=0;
for(register int i=1;i<=n;i++) {
ans+=abs(x[i]-m);
}
cout<<ans<<endl;
}
```