CF1698F.Equal Reversal
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There is an array a of length n . You may perform the following operation on it:
- Choose two indices l and r where 1≤l≤r≤n and al=ar . Then, reverse the subsegment from the l -th to the r -th element, i. e. set [al,al+1,…,ar−1,ar] to [ar,ar−1,…,al+1,al] .
You are also given another array b of length n which is a permutation of a . Find a sequence of at most n2 operations that transforms array a into b , or report that no such sequence exists.
输入格式
Each test contains multiple test cases. The first line contains a single integer t ( 1≤t≤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≤n≤500 ) — the length of array a and b .
The second line of each test case contains n integers a1,a2,…,an ( 1≤ai≤n ) — elements of the array a .
The third line of each test case contains n integers b1,b2,…,bn ( 1≤bi≤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 .
输出格式
For each test case, output "NO" (without quotes) if it is impossible to turn a into b using at most n2 operations.
Otherwise, output "YES" (without quotes). Then output an integer k ( 0≤k≤n2 ) 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 li and ri ( 1≤li≤ri≤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.
输入输出样例
输入#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
输出#1
YES 2 5 8 1 6 YES 2 1 4 3 6 NO NO YES 0
说明/提示
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.