bzoj1045 [HAOI2008] 糖果传递

来源:互联网 发布:许子东 知乎 编辑:程序博客网 时间:2024/06/02 07:31

题目

这又又又是一道普及组题,和某heoi题很像啊。。。。

#include<cstdio>#include<iostream>#include<algorithm>#define N 10000000using namespace std;int n,A[N+2],ave;int C[N+2],mid;long long sum,Ans;void read(int &x){    x=0;    char c=getchar();    while(c>'9'||c<'0')c=getchar();    while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();}int main(){    read(n);    for(int i=1;i<=n;i++)read(A[i]);    for(int i=1;i<=n;i++)sum+=A[i];    ave=sum/n;    for(int i=2;i<=n;i++)C[i]=C[i-1]+A[i]-ave;    sort(C+1,C+n+1);    mid=C[n/2+1];    for(int i=1;i<=n;i++)Ans+=abs(mid-C[i]);    printf("%lld",Ans);    return 0;}