比赛已经结束。新提交将被视为补题提交,不计入比赛成绩。
【入门】数组转换
给你一个 1 个长度为 n 的数组 a,初始 a 里的数都为 0,你可以对 a 进行如下操作任意次数(包括 0 次):
- 1、首先选择一个
大于 a 中最小值的数 x,即 x>min_element(a)
- 2、在 a 中从左往右开始,找到第 1 个
小于 x 的数 ai
- 3、将 ai 变为 ai+x
比如:
- 假设 a=[6,8,2,1],我们选择 x=6
- 那么第 1 个
小于 6 的数是 a3=2
- 所以 a3 会变为 2+6=8,最后 a 变为 a=[6,8,8,1]
请问,能否通过上面的操作,将数组 a 变为给定的数组 b
输入格式
第一行输入一个整数 T(1≤T≤1000) 代表数据组数
每组数据的第 1 行包含 2 个正整数 n;
每组数据的第 2 行包含 n 个正整数,表述数组 b;
输出格式
对于每组数据输出一行,
如果可以将数组 a 变为数组 b,那么输出 YES;否则输出 NO
4
4
5 6 1 1
3
3 1 2
3
40 60 90
2
1 1
YES
NO
NO
YES
提示
【样例 1 解释】
- 样例 1,我们可以进行以下一系列操作:
- 选择 x=2, a 变为 [2,0,0,0]
- 选择 x=2, a 变为 [2,2,0,0]
- 选择 x=3, a 变为 [5,2,0,0]
- 选择 x=4, a 变为 [5,6,0,0]
- 选择 x=1, a 变为 [5,6,1,0]
- 选择 x=1, a 变为 [5,6,1,1]
【数据范围】
- 1≤T≤104
- 1≤n≤2×105
- 0≤bi≤109
- 单组数据中 n 的总和不超过 2×105
请思考后再点击查看提示