CF1538B.Friends and Candies
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Polycarp has n friends, the i-th of his friends has ai candies. Polycarp's friends do not like when they have different numbers of candies. In other words they want all ai to be the same. To solve this, Polycarp performs the following set of actions exactly once:
- Polycarp chooses k (0≤k≤n) arbitrary friends (let's say he chooses friends with indices i1,i2,…,ik);
- Polycarp distributes their ai1+ai2+…+aik candies among all n friends. During distribution for each of ai1+ai2+…+aik candies he chooses new owner. That can be any of n friends. Note, that any candy can be given to the person, who has owned that candy before the distribution process.
Note that the number k is not fixed in advance and can be arbitrary. Your task is to find the minimum value of k.
For example, if n=4 and a=[4,5,2,5], then Polycarp could make the following distribution of the candies:
- Polycarp chooses k=2 friends with indices i=[2,4] and distributes a2+a4=10 candies to make a=[4,4,4,4] (two candies go to person 3).
Note that in this example Polycarp cannot choose k=1 friend so that he can redistribute candies so that in the end all ai are equal.
For the data n and a, determine the minimum value k. With this value k, Polycarp should be able to select k friends and redistribute their candies so that everyone will end up with the same number of candies.
Polycarp 有 n 个朋友,其中第 i 个朋友有 ai 颗糖果。Polycarp 的朋友们不喜欢彼此拥有不同数量的糖果,即他们希望所有 ai 都相等。为了解决这个问题,Polycarp 恰好执行以下操作一次:
- Polycarp 选择 k(0≤k≤n)个任意的朋友(假设他选择了下标为 i1,i2,…,ik 的朋友);
- Polycarp 将这 k 个朋友所拥有的糖果总数 ai1+ai2+…+aik 重新分发给全部 n 个朋友。在分发过程中,对这 ai1+ai2+…+aik 颗糖果中的每一颗,他都独立地为其指定一个新主人——可以是 n 个朋友中的任意一人。注意:某颗糖果也可能被再次分发给原先拥有它的那个人。
注意:k 的值并非预先固定,可取任意值。你的任务是求出满足条件的最小 k 值。
例如,若 n=4 且 a=[4,5,2,5],则 Polycarp 可以进行如下糖果分配:
- Polycarp 选择 k=2 个朋友,其下标为 i=[2,4],并将 a2+a4=10 颗糖果重新分配,使得最终 a=[4,4,4,4](其中两颗糖果分给了第 3 个人)。
注意,在该例子中,Polycarp 无法仅选择 k=1 个朋友,通过重新分配其糖果使最终所有 ai 相等。
给定 n 和数组 a,请确定最小的 k 值。在该 k 值下,Polycarp 应能选出 k 个朋友,并重新分配他们所拥有的糖果,使得最终每人拥有的糖果数量完全相同。
输入格式
The first line contains one integer t (1≤t≤104). Then t test cases follow.
The first line of each test case contains one integer n (1≤n≤2⋅105).
The second line contains n integers a1,a2,…,an (0≤ai≤104).
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
第一行包含一个整数 t(1≤t≤104)。随后是 t 组测试数据。
每组测试数据的第一行包含一个整数 n(1≤n≤2⋅105)。
第二行包含 n 个整数 a1,a2,…,an(0≤ai≤104)。
保证所有测试数据的 n 之和不超过 2⋅105。
输出格式
For each test case output:
- the minimum value of k, such that Polycarp can choose exactly k friends so that he can redistribute the candies in the desired way;
- "-1" if no such value k exists.
对于每个测试用例,输出:
- 满足条件的最小 k 值,即 Polycarp 能恰好选择 k 位朋友,使得他能以期望的方式重新分配糖果;
- 若不存在这样的 k 值,则输出 “-1”。
输入输出样例
输入#1
5 4 4 5 2 5 2 0 4 5 10 8 5 1 4 1 10000 7 1 1 1 1 1 1 1
输出#1
2 1 -1 0 0
输入解题思路,AI测评打分。不知道怎么写?