CF1253A.Single Push

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

Single Push

题目描述

给定两个长度相同的数组 a[1n]a[1 \dots n]b[1n]b[1 \dots n]

你可以进行一次“推送操作”:选择三个整数 l,r,kl, r, k,满足 1lrn1 \le l \le r \le nk>0k > 0,然后将 kk 加到 al,al+1,,ara_l, a_{l+1}, \ldots, a_r 上。

例如,如果 a=[3,7,1,4,1,2]a = [3, 7, 1, 4, 1, 2],你选择 (l=3,r=5,k=2)(l = 3, r = 5, k = 2),则数组 aa 变为 [3,7,3,6,3,2][3, 7, \underline{3, 6, 3}, 2]

你最多只能进行一次这样的操作。你能否通过至多一次操作使数组 aa 变为数组 bb

(我们认为 a=ba = b 当且仅当对于每个 1in1 \le i \le n,都有 ai=bia_i = b_i。)

输入格式

第一行包含一个整数 tt1t201 \le t \le 20),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n1000001 \le n \le 100\,000),表示数组的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai10001 \le a_i \le 1000)。

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n1bi10001 \le b_i \le 1000)。

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每个测试用例,输出一行,如果可以通过至多一次操作使 aabb 相等,则输出 "YES";否则输出 "NO"。可以使用大写或小写字母。

说明/提示

第一个测试用例如题面所述:可以选择 (l=3,r=5,k=2)(l=3, r=5, k=2) 进行操作,使 aa 变为 bb

第二个测试用例,至少需要两次操作才能使 aa 变为 bb

第三个测试用例,aabb 已经相等。

第四个测试用例,不可能使 aa 变为 bb,因为 kk 必须为正整数。

由 ChatGPT 4.1 翻译

样例

4
6
3 7 1 4 1 2
3 7 3 6 3 2
5
1 1 1 1 1
1 2 1 3 1
2
42 42
42 42
1
7
6
YES
NO
YES
NO

在线编程 IDE

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