记录编号 92099 评测结果 AAAAAAAAAA
题目名称 1430.[UVa 11300]分金币 最终得分 100
用户昵称 rpCardinal 是否通过 通过
代码语言 C++ 运行时间 0.114 s
提交时间 2014-03-18 15:26:51 内存使用 7.92 MiB
显示代码纯文本
#include <cstdio>
#include <algorithm>

inline long long abs(long long x)
{return x>=0?x:(-x);}

char ch;
inline void read(long long &x)
{
    x=0; ch=getchar();
    while (ch<=32) ch=getchar();
    while (ch>32)
    {
        x=x*10+ch-48;
        ch=getchar();
    }
}

int n,i;
long long sum,a[1000010],x,ans;

int main()
{
    freopen("Wealth.in","r",stdin);
    freopen("Wealth.out","w",stdout);
    while (scanf("%d",&n)==1)
    {
        ans=sum=0;
        for (i=1;i<=n;++i) {read(a[i]); sum+=a[i];}
        sum/=n; for (i=1;i<=n;++i) a[i]-=sum;
        a[0]=0; for (i=1;i<n;++i) a[i]+=a[i-1];
        std::sort(a,a+n);
        x=a[n/2];
        for (i=0;i<n;++i) ans+=abs(x-a[i]);
        printf("%lld\n",ans);
    }
    fclose(stdin); fclose(stdout);
    return 0;
}