CF1187D Subarray Sorting
题目描述
给定一个数组 $a_1, a_2, \dots, a_n$ 和一个数组 $b_1, b_2, \dots, b_n$。
每次操作,你可以将数组 $a$ 的任意一个子数组 $a[l \dots r]$ 按非递减顺序排序。
例如,如果 $a = [4, 2, 2, 1, 3, 1]$,你选择子数组 $a[2 \dots 5]$,那么数组会变成 $[4, 1, 2, 2, 3, 1]$。
请你判断,是否可以通过若干次(可以为零次)上述操作,将数组 $a$ 变成数组 $b$。
输入格式
第一行包含一个整数 $t$($1 \le t \le 3 \cdot 10^5$),表示询问的组数。
每组询问的第一行包含一个整数 $n$($1 \le n \le 3 \cdot 10^5$)。
每组询问的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le n$)。
每组询问的第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($1 \le b_i \le n$)。
保证所有询问中 $\sum n \le 3 \cdot 10^5$。
输出格式
对于每组询问,如果可以通过若干次操作将数组 $a$ 变成数组 $b$,输出 YES(大小写均可);否则输出 NO(大小写均可)。
说明/提示
在第一个测试用例中,可以先将子数组 $a_1 \dots a_5$ 排序,此时 $a$ 变为 $[1, 1, 4, 4, 7, 5, 6]$,然后再将子数组 $a_5 \dots a_6$ 排序。
由 ChatGPT 4.1 翻译