中位数问题。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define LL long long
#define maxn 1000000+10
using namespace std;
LL a[maxn],c[maxn],M,n;
int main()
{
while(scanf("%lld",&n)!=EOF)
{
LL sum=0,cnt=0;
for(int i=1; i<=n; i++)
{
scanf("%lld",&a[i]);
sum+=a[i];
}
M = sum/n;
c[0]=0;
for(int i=1; i<n; i++)
c[i]=c[i-1]+a[i]-M;
sort(c,c+n);
LL x1=c[n/2];
for(int i=0; i<n; i++)
cnt+=abs(x1-c[i]);
printf("%lld\n",cnt);
}
return 0;
}