Sample Input
4
3
1 1 0
4
2 2 2 2
3
0 1 4
1
1000000000
Sample Output
2
0
3
0
题意:n堆石子,给出每堆的数量,可以扔掉任意数量的石子,也可以给其他堆的,问至少操作几个石子。
思路:记录平均数,看每堆多几个。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cstdio>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std;
typedef long long ll;
const int M=1e5+10;
const int mod=1e9+10;
int a[M],b[100];
char s[M];
int main()
{
int T,n,k;
scanf("%d",&T);
while(T--){
int n,stept=0;
ll ar=0,ans=0,s=0,sum=0,re=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
re=sum%n;
ar=sum/n;
for(int i=1;i<=n;i++)
if(a[i]>ar)
ans+=a[i]-ar;
printf("%lld\n",ans);
}
return 0;
}