#CF2065C2. Skibidus and Fanum Tax (hard version)
Skibidus and Fanum Tax (hard version)
题目描述
这是这道题的困难版本。在该版本中,。
Skibidus 有两个数组 和 ,分别包含 个和 个元素。对于 到 的每个整数 ,他最多可以执行一次以下操作:
- 选择一个整数 (),将 赋值为 。注意,经过此操作后, 可能变为非正数。
Skibidus 需要你的帮助,判断是否可以通过若干次上述操作,使得数组 为非递减序列。
若 ,则数组 为非递减序列。
输入格式
第一行包含一个整数 (),表示表示测试用例的数量。
每个测试用例的第一行包含两个整数 和 (,)。
接下来一行包含 个整数 ()。
接下来一行包含 个整数 ()。
保证所有测试用例中, 的总和以及 的总和都不超过 。
输出格式
对于每个测试用例,如果可以使 按非递减顺序排列,则在新的一行输出 YES,否则输出 NO。
样例
5
1 3
5
9 1 1000000000
3 2
1 4 3
3 4
4 3
2 4 6 5
6 1 8
5 2
6 4 5 4 5
4 1000
3 1
9 8 7
8
YES
NO
YES
NO
YES
样例说明
- 在第一个测试用例中, 已经是非递减序列。
- 在第二个测试用例中,可以证明无法使其非递减。
- 在第三个测试用例中,我们可以将 更新为 ,将 更新为 。此时数组变为 ,为非递减序列。
- 在最后一个测试用例中,我们可以对每个位置均执行操作,数组变为 ,是非递减序列。
来源
Codeforces 2065C2,英文题名 Skibidus and Fanum Tax (hard version)。