CF1538B.Friends and Candies

入门

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Polycarp has nn friends, the ii-th of his friends has aia_i candies. Polycarp's friends do not like when they have different numbers of candies. In other words they want all aia_i to be the same. To solve this, Polycarp performs the following set of actions exactly once:

  • Polycarp chooses kk (0≤k≤n0 \le k \le n) arbitrary friends (let's say he chooses friends with indices i1,i2,…,iki_1, i_2, \ldots, i_k);
  • Polycarp distributes their ai1+ai2+…+aika_{i_1} + a_{i_2} + \ldots + a_{i_k} candies among all nn friends. During distribution for each of ai1+ai2+…+aika_{i_1} + a_{i_2} + \ldots + a_{i_k} candies he chooses new owner. That can be any of nn friends. Note, that any candy can be given to the person, who has owned that candy before the distribution process.

Note that the number kk is not fixed in advance and can be arbitrary. Your task is to find the minimum value of kk.

For example, if n=4n=4 and a=[4,5,2,5]a=[4, 5, 2, 5], then Polycarp could make the following distribution of the candies:

  • Polycarp chooses k=2k=2 friends with indices i=[2,4]i=[2, 4] and distributes a2+a4=10a_2 + a_4 = 10 candies to make a=[4,4,4,4]a=[4, 4, 4, 4] (two candies go to person 33).

Note that in this example Polycarp cannot choose k=1k=1 friend so that he can redistribute candies so that in the end all aia_i are equal.

For the data nn and aa, determine the minimum value kk. With this value kk, Polycarp should be able to select kk friends and redistribute their candies so that everyone will end up with the same number of candies.

Polycarp 有 nn 个朋友,其中第 ii 个朋友有 aia_i 颗糖果。Polycarp 的朋友们不喜欢彼此拥有不同数量的糖果,即他们希望所有 aia_i 都相等。为了解决这个问题,Polycarp 恰好执行以下操作一次:

  • Polycarp 选择 kk(0≤k≤n0 \le k \le n)个任意的朋友(假设他选择了下标为 i1,i2,…,iki_1, i_2, \ldots, i_k 的朋友);
  • Polycarp 将这 kk 个朋友所拥有的糖果总数 ai1+ai2+…+aika_{i_1} + a_{i_2} + \ldots + a_{i_k} 重新分发给全部 nn 个朋友。在分发过程中,对这 ai1+ai2+…+aika_{i_1} + a_{i_2} + \ldots + a_{i_k} 颗糖果中的每一颗,他都独立地为其指定一个新主人——可以是 nn 个朋友中的任意一人。注意:某颗糖果也可能被再次分发给原先拥有它的那个人。

注意:kk 的值并非预先固定,可取任意值。你的任务是求出满足条件的最小 kk 值。

例如,若 n=4n=4 且 a=[4,5,2,5]a=[4, 5, 2, 5],则 Polycarp 可以进行如下糖果分配:

  • Polycarp 选择 k=2k=2 个朋友,其下标为 i=[2,4]i=[2, 4],并将 a2+a4=10a_2 + a_4 = 10 颗糖果重新分配,使得最终 a=[4,4,4,4]a=[4, 4, 4, 4](其中两颗糖果分给了第 3 个人)。

注意,在该例子中,Polycarp 无法仅选择 k=1k=1 个朋友,通过重新分配其糖果使最终所有 aia_i 相等。

给定 nn 和数组 aa,请确定最小的 kk 值。在该 kk 值下,Polycarp 应能选出 kk 个朋友,并重新分配他们所拥有的糖果,使得最终每人拥有的糖果数量完全相同。

输入格式

The first line contains one integer tt (1≤t≤1041 \le t \le 10^4). Then tt test cases follow.

The first line of each test case contains one integer nn (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5).

The second line contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (0≤ai≤1040 \le a_i \le 10^4).

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052 \cdot 10^5.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)。随后是 tt 组测试数据。

每组测试数据的第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5)。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1040 \le a_i \le 10^4)。

保证所有测试数据的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case output:

  • the minimum value of kk, such that Polycarp can choose exactly kk friends so that he can redistribute the candies in the desired way;
  • "-1" if no such value kk exists.

对于每个测试用例,输出:

  • 满足条件的最小 kk 值,即 Polycarp 能恰好选择 kk 位朋友,使得他能以期望的方式重新分配糖果;
  • 若不存在这样的 kk 值,则输出 “-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测评打分。不知道怎么写?

首页