#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)。可以选择任意的 ij 进行操作。

请判断是否可以通过该操作使所有容器中的水量相同。


输入格式

  • 第一行输入一个整数 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"。