Codeforces Round 803 (Div. 2)
F
Equal Reversal
Codeforces
2800
原题
← EG →
翻译中…

There is an array $a$ of length $n$. You may perform the following operation on it:

翻译中…
  • Choose two indices $l$ and $r$ where $1 \le l \le r \le n$ and $a_l = a_r$. Then, reverse the subsegment from the $l$-th to the $r$-th element, i. e. set $[a_l, a_{l + 1}, \ldots, a_{r - 1}, a_r]$ to $[a_r, a_{r-1}, \ldots, a_{l+1}, a_l]$.
翻译中…

You are also given another array $b$ of length $n$ which is a permutation of $a$. Find a sequence of at most $n^2$ operations that transforms array $a$ into $b$, or report that no such sequence exists.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line contains a single integer $t$ ($1 \leq t \leq 100$) — the number of test cases. The description of the test cases follows.

翻译中…

The first line of each test case contains an integer $n$ ($1 \le n \le 500$) — the length of array $a$ and $b$.

翻译中…

The second line of each test case contains $n$ integers $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le n$) — elements of the array $a$.

翻译中…

The third line of each test case contains $n$ integers $b_1, b_2, \ldots, b_n$ ($1 \le b_i \le n$) — elements of the array $b$.

翻译中…

It is guaranteed that $b$ is a permutation of $a$.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $500$.

翻译中…

Output

翻译中…

For each test case, output "NO" (without quotes) if it is impossible to turn $a$ into $b$ using at most $n^2$ operations.

翻译中…

Otherwise, output "YES" (without quotes). Then output an integer $k$ ($0 \leq k \leq n^2$) denoting the number of operations you will perform. Note that you don't have to minimize the number of operations.

翻译中…

Afterwards, output $k$ lines. The $i$-th line should contain two integers $l_i$ and $r_i$ ($1 \leq l_i \leq r_i \leq n$) — the left and right indices for the $i$-th operation.

翻译中…

You can output "YES" and "NO" in any case (for example, strings "yEs", "yes" and "Yes" will be recognized as a positive response).

翻译中…

If there are multiple possible sequences of operations, you may output any of them.

翻译中…

Note

翻译中…

In the first test case, we can perform the following operations: $$[1,2,4,3,1,2,1,1] \xrightarrow[l=5,\,r=8]{} [1,2,4,3,1,1,2,1] \xrightarrow[l=1,\,r=6]{} [1,1,3,4,2,1,2,1].$$

翻译中…

In the second test case, we can perform the following operations: $$[1,2,3,1,3,2,3] \xrightarrow[l=1,\,r=4]{} [1,3,2,1,3,2,3] \xrightarrow[l=3,\,r=6]{} [1,3,2,3,1,2,3].$$

翻译中…

It can be proven that it is impossible to turn $a$ into $b$ in the third and fourth test cases.

翻译中…

样例

Input #1
5
8
1 2 4 3 1 2 1 1
1 1 3 4 2 1 2 1
7
1 2 3 1 3 2 3
1 3 2 3 1 2 3
3
1 1 2
1 2 1
2
1 2
2 1
1
1
1
Output #1
YES
2
5 8
1 6
YES
2
1 4
3 6
NO
NO
YES
0
InputCopy OutputCopy
题目信息
题号
1698F
时间限制
1 s
内存限制
256 MB
标签
构造
图论
模拟
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。