#CF2078A. 最终结果
最终结果
A. 最终结果
题目描述
给定一个长度为 的数组 ,你必须执行下述操作,直到数组长度变为 。
选择一个正整数 ,满足 能被 整除。将数组 划分为 个子序列 ,满足:
- 中每个元素恰好属于一个子序列;
- 所有子序列的长度相等。
之后,将数组 替换为:
$$a=[\operatorname{avg}(s_1),\operatorname{avg}(s_2),\dots,\operatorname{avg}(s_k)] $$其中 $\operatorname{avg}(s)=\dfrac{\sum_{i=1}^{|s|}s_i}{|s|}$ 表示子序列 中所有元素的平均值。
你需要判断是否存在一系列操作,使得最终数组变为 。
注:序列 是序列 的子序列,当且仅当 可以通过删去 中若干(可以是 个或全部)元素得到。
输入格式
每个测试包含多组数据。第一行一个整数 (),表示测试数据组数。
每组数据第一行包含两个整数 (),分别表示数组初始长度与目标最终值。
第二行包含 个整数 (),表示初始数组。
输出格式
对于每组数据,如果存在合法操作序列使得最终数组为 ,输出 YES;否则输出 NO。
输出不区分大小写,例如 yES、yes、Yes 均会被判定为正确。
样例输入
4
1 3
3
4 9
7 11 2 5
6 9
1 9 14 12 10 8
10 10
10 10 10 10 10 10 10 10 10 10
样例输出
YES
NO
YES
YES
样例解释
- 第一组数据:初始数组就是 ,已经满足 ,直接输出
YES。 - 第二组数据:,不存在任何操作序列使得最终数组为 ,输出
NO。 - 第三组数据:一种合法操作如下:
- 取 ,划分子序列 ,,数组变为 $[\operatorname{avg}(s_1),\operatorname{avg}(s_2)]=[7,11]$。
- 取 ,子序列 ,数组变为 。
- 第四组数据:直接取 ,对整个数组求平均,结果即为 。