报告错误
如果你发现该网页中存在错误/显示异常,可以从以下两种方式向我们报告错误,我们会尽快修复:
- 使用 CS Club 网站错误 为主题,附上错误截图或描述及网址后发送邮件到 286988023@qq.com
- 在我们的网站代码仓库中创建一个 issue 并在 issue 中描述问题 点击链接前往Github仓库
题目大意
要平均的分配糖果的数量,可以选择K个朋友 把他们的糖果重新分配,求K的最小值
大概思路
先判断能不能平均分完,能的话直接计算比平均值大的个数就好了,因为那些多出糖果肯定要被分出去 复杂度 :O(n) 1≤𝑛≤2105
代码
import java.util.*;
public class friends{
public static void main(String [] args){
Scanner in=new Scanner(System.in);
int N=Integer.parseInt(in.nextLine());
for(int n=0;n<N;n++){
int num=Integer.parseInt(in.nextLine());
String[] temp=in.nextLine().split(" ");
int[] fri=new int[num];
int sum=0;
for(int i=0;i<temp.length;i++){
fri[i]=Integer.parseInt(temp[i]);
sum+=Integer.parseInt(temp[i]);
}
int answer=0;
if(sum%num==0){
int standard=sum/num;
for(int j=0;j<fri.length;j++){
if(fri[j]==standard) continue;
if(fri[j]>standard) answer++;
}
System.out.println(answer);
}else{
System.out.println(-1);
}
}
}
}