【解题报告】
又是双倍经验题
推导如下:
这里的B是定值也就是
就解决了两题,yeh
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1000005;
int n,a[maxn];
long long ans,sum;
inline int read_()
{
int sum=0;
char ch=getchar();
while (ch<'0'||ch>'9') ch=getchar();
while (ch>='0'&&ch<='9') sum=sum*10+ch-48,ch=getchar();
return sum;
}
int abs_(int x)
{
if (x<0) return -x;
return x;
}
int main()
{
freopen("1045.in","r",stdin);
freopen("1045.out","w",stdout);
n=read_(); sum=0;
for (int i=1; i<=n; i++) a[i]=read_(),sum+=a[i];
sum=sum/n;
for (int i=1; i<=n; i++) a[i]=a[i]-sum+a[i-1];
sort(a+1,a+1+n);
ans=0;
for (int i=1; i<=n; i++) ans+=abs_(a[i]-a[(n+1)/2]);
printf("%lld",ans);
return 0;
}
作者:CHNWJD 发表于2017/10/29 20:28:16 原文链接
阅读:0 评论:0 查看评论