题解这题从全局角度考虑最优解就是将大于平均值的部分放到小于平均值的堆上即可
#include<bits/stdc++.h>
using namespace std;
int a[10004];
int main()
{
int n,su=0;
scanf("%d",&n);
for(int i=0;i<n;++i)
scanf("%d",&a[i]),su+=a[i];
su/=n;
int an=0;
for(int i=0;i<n;++i)
if(a[i]<su)
an+=(su-a[i]);
printf("%d\n",an);
return 0;
}

京公网安备 11010502036488号