题目:2048. 干草
题目描述
奶牛们又来捣乱了!
农夫约翰精心整理的 N 堆干草,每堆干草的高度相同。
但是,奶牛们趁着他不注意在干草堆之间移动了一些干草捆,使得各个干草堆的高度可能不再相同了。
给定所有干草堆的新高度,请帮助约翰确定,为了使所有干草堆恢复到原来的相同高度,至少要移动的最小干草捆数。
输入
第一行包含整数 N。
接下来 N 行,每行包含一个整数(范围 [1,10000]),表示每个干草堆的现有干草捆数量(也就是新高度)。
输出
输出需要移动的最小干草捆数。
数据范围
1≤N≤10000
时空范围
1s / 64MB
输入样例
4 2 10 7 1输出样例
7样例解释
至少要移动 7 个干草捆(将 3 个干草捆从第 2 堆移动至第 1 堆,将 2 个干草捆从第 2 堆移动至第 4 堆,将 2 个干草捆从第 3 堆移动至第 4 堆)。
代码
#include<bits/stdc++.h>usingnamespacestd;constintN=10000+10;intn,a[N],avg,res;intmain(){cin>>n;for(inti=0;i<n;i++){cin>>a[i];avg+=a[i];}avg/=n;for(inti=0;i<n;i++){if(a[i]>avg){res+=a[i]-avg;}}cout<<res;return0;}