CF1690B.Array Decrements

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Array Decrements

题目描述

Kristina 有两个数组 aabb,每个数组包含 nn 个非负整数。她可以对数组 aa 执行如下操作任意次:

  • 对数组中每个非零元素进行减一操作,即将每个 ai>0a_i > 0 的元素替换为 ai1a_i - 11in1 \le i \le n)。如果 aia_i 原本为 00,则其值不变。

请判断 Kristina 是否可以通过若干次操作(也可以不操作),使得数组 aa 变为数组 bb。换句话说,是否存在某个操作次数,使得对每个 1in1 \le i \le n,都有 ai=bia_i = b_i

例如,设 n=4n = 4a=[3,5,4,1]a = [3, 5, 4, 1]b=[1,3,2,0]b = [1, 3, 2, 0]。此时,她可以执行两次操作:

  • 第一次操作后,a=[2,4,3,0]a = [2, 4, 3, 0]
  • 第二次操作后,a=[1,3,2,0]a = [1, 3, 2, 0]

因此,只需两次操作即可将数组 aa 变为数组 bb

输入格式

输入的第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n51041 \le n \le 5 \cdot 10^4)。

每个测试用例的第二行包含 nn 个非负整数 a1,a2,,ana_1, a_2, \dots, a_n0ai1090 \le a_i \le 10^9)。

每个测试用例的第三行包含 nn 个非负整数 b1,b2,,bnb_1, b_2, \dots, b_n0bi1090 \le b_i \le 10^9)。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出一行:

  • 如果可以通过若干次操作将数组 aa 变为数组 bb,输出 YES;
  • 否则输出 NO。

你可以用任意大小写形式输出 YES 和 NO(例如,yEs、yes、Yes 和 YES 都会被识别为肯定回答)。

说明/提示

第一个测试用例已在题目描述中分析。

第二个测试用例中,只需对数组 aa 执行一次操作即可。

第三个测试用例中,不可能将数组 aa 变为数组 bb

由 ChatGPT 4.1 翻译

样例

6
4
3 5 4 1
1 3 2 0
3
1 2 1
0 1 0
4
5 3 7 2
1 1 1 1
5
1 2 3 4 5
1 2 3 4 6
1
8
0
1
4
6
YES
YES
NO
NO
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验