#P1075. [BPOJ-R3C]寻梦 | (Find Dreams)

[BPOJ-R3C]寻梦 | (Find Dreams)

题目描述

请你帮小 B\verb!B! 解决一个问题:给定两个长度为 nn 的整数数组 aabb,其中 aa 只包含 {1,0,1}\{ -1,0,1 \} 三个元素。你可以任意次执行以下操作:选择一对索引 (i,j)(i,j),使得 1i<jn1\leq i<j\leq n,将 aia_i 加到 aja_j 上。即数组的第 jj 个元素变为 ai+aja_i+a_j

例如,如果给定数组 [1,1,0][1,−1,0],则可以通过一次操作将其转换为 [1,1,1][1,−1,−1][1,0,0][1,0,0][1,1,1][1,−1,1]

现在小 B\verb!B! 想知道是否可能通过多次执行这些操作将数组 aa 变为数组 bb。请你帮他解决这个问题。

输入格式

第一行,一个整数 tt,表示共有 tt 组输入。 对于每组输入:

  • 第一行,一个整数 nn,表示给定数组的长度。 接下来 22 行,每行一个序列,分别为 aabb

输出格式

输出共 tt 行,如果数组 aa 可以通过若干次操作变成 bb,则输出 YES\verb!YES!,否则输出 NO\verb!NO!

输入输出样例

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
YES
NO
YES
YES
NO

说明/提示

对于 100%100\% 的数据,满足 1t100001 \le t \le 100001n1051 \le n \le 10^5ai{1,0,1}a_i \in \{ -1,0,1\}109bi109-10^9 \le b_i \le 10^9