#CF2143A. 全长度减法
全长度减法
A. 全长度减法
时间限制: 每测试 秒
内存限制: 每测试 兆字节
给定一个长度为 的排列 。
你必须对每个整数 (从 到 )按顺序恰好执行一次以下操作:
- 选择 的一个长度恰好为 的子数组,并将该子数组中的每个元素减去 。
完成所有 次操作后,你的目标是使数组的所有元素都等于 。
判断是否可能实现这一目标。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 。接下来是每个测试用例的描述。
第一行包含整数 — 排列的长度。
第二行包含 — 排列本身。
输出格式
对于每个测试用例,如果在执行完所有操作后能够使数组 的所有元素等于 ,则输出 YES;否则输出 NO。
你可以以任何大小写形式输出答案。例如,字符串 "yEs"、"yes"、"Yes" 和 "YES" 都将被识别为肯定回答。
样例
输入
4
4
1 3 4 2
5
1 5 2 4 3
5
2 4 5 3 1
3
3 1 2
输出
YES
NO
YES
NO
样例解释
第一个测试用例,可以按如下方式进行:
- :选择子数组 。数组 变为 。
- :选择子数组 。数组 变为 。
- :选择子数组 。数组 变为 。
- :选择子数组 。数组 变为 。
因此,我们成功将整个数组归零,答案为 YES。
第二个测试用例,可以证明不可能将所有元素归零。
第三个测试用例,过程如下:
$$[2, 4, 5, 3, 1] \to [2, 4, 4, 3, 1] \to [2, 3, 3, 3, 1] \to [2, 2, 2, 2, 1] \to [1, 1, 1, 1, 1] \to [0, 0, 0, 0, 0] $$加粗的值表示每一步中我们从中减去 的子数组。
第四个测试用例,同样可以证明不可能将所有值归零。