请求加强数据
查看原帖
请求加强数据
278629
Rubidium_Chloride楼主2021/8/8 13:46
#include<bits/stdc++.h>
#define N 5000009
#define INF 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
inline ll read(){
	ll x=0,f=1;char c=getchar();
	while(!isdigit(c)){if(c=='-') f*=-1;c=getchar();}
	while(isdigit(c)){x=x*10+(c^48);c=getchar();}
	return x*f;
}
ll n,a[N],b[N],ans,tot;
ll Abs(ll x){return x>0?x:-x;} 
int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	n=read();
	for(int i=1;i<=n;i++) a[i]=read(),tot+=a[i];
	tot/=n;
	for(int i=1;i<=n;i++) b[i]=b[i-1]+(a[i]-tot);
	sort(b+1,b+n+1);
	for(int i=1;i<=n;i++) ans+=Abs(b[n/2]-b[i]);
	printf("%lld\n",ans);
	return 0;
}

显然的这份代码是错误的,中位数应当是(n+1)>>1 而不是n/2,但是这份代码却可以通过这道题目,故请求加强数据。

如果有合适的数据/data maker的话我会在此帖下回复。

2021/8/8 13:46
加载中...