AcWing 122. 糖果传递
原题链接
中等
作者:
挽安Wanan
,
2025-04-05 23:46:31
· 辽宁
,
所有人可见
,
阅读 3
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1000010;
typedef long long LL;
int n;
int a[N];
LL c[N];
int main()
{
scanf("%d", &n);
LL sums = 0;
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
sums += a[i];
}
LL avg = sums / n;
for (int i = n; i > 1; i--) {
c[i] = c[i + 1] + avg - a[i];
}
c[1] = 0;
sort(c + 1, c + n + 1);
LL ans = 0;
for (int i = 1; i <= n; i++) {
ans += abs(c[i] - c[(i + 1) / 2]);
}
printf("%lld\n", ans);
return 0;
}