CF1584C.Two Arrays

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

Two Arrays

题目描述

给定两个整数数组 a1,a2,,ana_1, a_2, \ldots, a_nb1,b2,,bnb_1, b_2, \ldots, b_n

我们定义对数组 aa 的一种变换方式如下:

  1. 选择任意一个非负整数 kk,满足 0kn0 \le k \le n
  2. 选择 kk 个不同的数组下标 1i1<i2<<ikn1 \le i_1 < i_2 < \ldots < i_k \le n
  3. ai1,ai2,,aika_{i_1}, a_{i_2}, \ldots, a_{i_k} 各自加 11,数组 aa 的其他元素保持不变。
  4. 将数组 aa 的元素以任意顺序重新排列。

请判断是否存在某种对数组 aa 的变换方式(仅进行一次),使得变换后的数组恰好等于 bb

输入格式

第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。接下来是每个测试用例的描述。

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

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

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

输出格式

对于每个测试用例,如果存在某种对数组 aa 的变换方式,使得变换后的数组等于 bb,则输出 "YES"(不含引号);否则输出 "NO"(不含引号)。

你可以用任意大小写输出答案。

说明/提示

在第一个测试用例中,我们可以进行如下变换:

  • 选择 k=2k = 2
  • 选择 i1=1i_1 = 1i2=2i_2 = 2
  • a1a_1a2a_2 各加 11,得到的新数组为 [0,2,0][0, 2, 0]
  • 将第二个和第三个元素交换位置。

在第二个测试用例中,没有合适的变换方式。

在第三个测试用例中,选择 k=0k = 0,且不改变元素顺序即可。

由 ChatGPT 4.1 翻译

样例

3
3
-1 1 0
0 0 2
1
0
2
5
1 2 3 4 5
1 2 3 4 5
YES
NO
YES

在线编程 IDE

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