#4160. B. Make Equal 800
B. Make Equal 800
B. Make Equal
时间限制: 每个测试用例 2 秒 内存限制: 256 MB
题目描述
有 n 个水容器排成一列,从左到右编号为 1 到 n。每个容器可以容纳任意数量的水;初始时,第 i 个容器中有 a_i 单位的水。已知所有 a_i 的总和是 n 的倍数。
你可以进行以下操作(可以重复多次,也可以不进行任何操作):将第 i 个容器中的任意数量的水倒入第 j 个容器,其中 i 必须小于 j(即 i < j)。可以选择任意的 i 或 j 进行操作。
请判断是否可以通过该操作使所有容器中的水量相同。
输入格式
- 第一行输入一个整数
t(1 ≤ t ≤ 10^4)——测试用例的数量。接下来的t行是测试用例的描述。 - 每个测试用例的第一行是一个整数
n(1 ≤ n ≤ 2⋅10^5)——水容器的数量。 - 每个测试用例的第二行包含
n个整数a_1, a_2, ..., a_n(0 ≤ a_i ≤ 10^9)——每个容器中的水量。保证每个测试用例中所有a_i的和不会超过 2⋅10^9,并且总和是n的倍数。
保证: 所有测试用例中,n 的总和不会超过 2⋅10^5。
输出格式
对于每个测试用例,输出一行,如果可以通过描述的操作使所有容器中的水量相同,则输出 "YES";否则输出 "NO"。
你可以输出字母的大小写不拘。例如,"yEs"、"yes"、"Yes" 和 "YES" 都是正确答案。
示例
输入
6
1
43
2
1 3
5
4 5 2 1 3
3
1 2 3
7
4 5 5 0 6 4 4
7
6 5 5 1 3 4 4
输出
YES
NO
YES
NO
NO
YES
题目解释
- 测试用例 1:只有一个容器,水量是 43,因此输出 "YES"。
- 测试用例 2:两个容器,水量分别是 1 和 3。它们的平均水量为 2,无法通过操作让两个容器水量相同,因此输出 "NO"。
- 测试用例 3:容器的水量分别为 4, 5, 2, 1, 3。我们可以通过操作将它们的水量平衡,使每个容器的水量都是 3,因此输出 "YES"。
- 测试用例 4:容器的水量分别为 1, 2, 3。无法通过操作使它们的水量相同,因此输出 "NO"。
- 测试用例 5:容器的水量分别为 4, 5, 5, 0, 6, 4, 4。无法通过操作使它们的水量相同,因此输出 "NO"。
- 测试用例 6:容器的水量分别为 6, 5, 5, 1, 3, 4, 4。通过操作可以让每个容器的水量为 4,因此输出 "YES"。