2019山东

Stones in the Bucket

题意:就是将每个桶内的石块变得一样,可以为零,问你需要几次

思路:总和小于桶数的,直接扔掉,总和大于桶数的,求一下平均,统计一下比平均少的和多的,取其中数较小的,加上二者之差就是最终要的

#include<bits/stdc++.h> 
using namespace std;
#define N 100007
#define ll long long
ll a[N];
int main()
{
int t;
cin>>t;
while(t--){
int n;
cin>>n;
ll sum=0;
for(int i=0;i<n;i++){
cin>>a[i];
sum+=a[i];
}
if(sum<n){
cout<<sum<<endl;
}
else{
sum/=n;
ll count1=0;
ll count2=0;
for(int i=0;i<n;i++){
if(sum>a[i])count1+=(sum-a[i]);
else if(a[i]>sum)count2+=(a[i]-sum);
}
ll e=min(count1,count2)+fabs(count1-count2);
cout<<e<<endl;
}
}
}

posted @ 2020-10-04 13:17  CHUNIN  阅读(59)  评论(0)    收藏  举报