#CF1312C. 加幂次
加幂次
C. 加幂次
每次测试的时间限制:2 秒
每次测试的内存限制:256 兆字节
假设你正在执行以下算法。
开始时,有一个数组 全部被填充为 。
对该数组多次应用以下操作 —— 在第 步( 索引)你可以:
- 选择一个位置 (),并将 增加 ;
- 或者不选择任何位置,跳过这一步。
你可以决定算法在每一步的行为以及何时停止。
问题是:在某个步骤之后,你能否使数组 等于给定的数组 (即对于每个 ,)?
输入
第一行包含一个整数 ()——测试用例的数量。
接下来是 行,每个测试用例两行。
每个测试用例的第一行包含两个整数 和 (,)——数组 和 的大小以及算法中使用的 值。
第二行包含 个整数 ()——你希望得到的数组。
输出
对于每个测试用例,如果你能在某步之后得到数组 ,则输出 YES(大小写不敏感),否则输出 NO。
示例
输入:
5
4 100
0 0 0 0
1 2
1
3 4
1 4 1
3 2
0 1 3
3 9
0 59049 810
输出:
YES
YES
NO
NO
YES
提示
- 第一个测试用例中,你可以在第 步之前停止算法,或者多次不选任何位置然后停止。
- 第二个测试用例中,你可以将 加到 上,然后停止。
- 第三个测试用例中,你无法在数组 中得到两个 。
- 第五个测试用例中,你可以跳过 和 ,然后将 和 加到 上,跳过 ,最后将 加到 上。