题目描述
给定一堆干草,需要移动多少个干草,使得所有干草堆的高度相同。
题目分析
首先,直觉的想到,某一个干草堆高度只有大于所有干草堆的平均值的时候才会被移动。
我们只需要统计有多少个干草堆高度大于平均值,并且用cnt变量将干草堆的高度$ \ - \ $平均值记录下来。
答案就是cnt
$Code$
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 10010;
int a[N];
int ave;
int cnt;
int n;
int main()
{
cin >> n;
for(int i = 0; i < n; i ++ )
{
cin >> a[i];
ave += a[i];
}
ave /= n;
for(int i = 0; i < n; i ++ )
if(a[i] > ave)
cnt += a[i] - ave;
cout << cnt << endl;
return 0;
}