刘汝佳《算法竞赛入门经典训练指南 1.1例3
///2014.4.12
///uva11300
///刘汝佳《算法竞赛入门经典训练指南 1.1例3
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <algorithm>
#include <climits>
using namespace std;
#define maxn 1000100
int n;
long long A[maxn];
int main()
{
// freopen("in","r",stdin);
// freopen("out","w",stdout);
while( scanf("%d",&n)!=EOF ){
long long sum = 0;
for(int i=0 ; i<n ; i++){
scanf("%lld",A+i);
sum += A[i];
}
long long ave = sum / n;
for(int i=0 ; i<n ; i++){
A[i] -= ave;
}
for(int i=1 ; i<n ; i++){
A[i] += A[i-1];
}
sort(A,A+n);
long long mid = A[n/2];
sum = 0;
for(int i=0 ; i<n ; i++){
if( A[i]-mid > 0 )
sum += A[i]-mid;
else
sum += mid-A[i];
}
cout<<sum<<endl;
}
return 0;
}