问题2573--善良的wjk

2573: 善良的wjk

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

wjk主动帮助damn来完成一个任务。
这次,wjk需要帮助damn解决以下问题: 
有两个长度为 n1n100)的整数数组 ab
结果发现数组 a 只包含集合{1,0,1}中的元素。

wjk可以任意多次执行下面的操作序列: 
选择任意一对索引(i,j),使得1i<jn1n100)。
可以多次选择同一对索引(i,j),ai 添加到 aj 中。
句话说,选择(i,j)就意味着数组中的第 j 个元素 aj = ai+aj

例如,如果给定数组a为:[1,1,0],那么通过一次操作,在1i<jn范围内
选择(2,3),[1,1,0]->[1,1,1] 
选择(1,2),[1,1,0]->[1,0,0]
选择(1,3),[1,1,0]->[1,1,1]。 

wjk想知道是否有可能对数组 a 进行一定数量(0 或更多)的运算,使其与数组 b 相等。
你能帮助他吗?

输入

每个测试都包含多个测试用例。 第一行包含测试用例的数量 t1t100)。
测试用例说明如下。 每个测试用例的第一行都包含一个整数 n1n10000)——数组的长度。 
每个测试用例的第二行包含 n 个整数 a1,a2,,an1ai1)——数组 a 的元素。
每个测试用例的第三行包含 n 个整数 b1,b2,,bn10000bi10000)——数组 b 的元素。
元素之间可能存在重复。 保证所有测试用例中 n 的总和不超过 10000

输出

对于每个测试用例,

如果可以通过执行所述操作使数组 a 和 b 相等,则输出"YES ";

如果不可能,则输出一行包含 "NO "。

样例输入 Copy

5
3
1 -1 0
1 1 -2
3
0 1 1
0 2 2
2
1 0
1 41
2
-1 0
-1 -41
5
0 1 -1 1 -1
1 1 -1 1 -1

样例输出 Copy

YES
NO
YES
YES
NO

提示

在第一个测试用例中,我们可以两次选择 (i,j)=(2,3),之后再两次选择 (i,j)=(1,2)。这些操作将转换 [1,−1,0]→[1,−1,−2]→[1,1,−2]

在第二个测试用例中,我们无法在第二个位置上选择相等的数字。

在第三个测试案例中,我们可以选择 (i,j)=(1,2),41 次。

第四个测试案例也是如此。

在最后一种情况下,不可能使数组 a 等于数组 b。

来源/分类