CF1698F.Equal Reversal

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

There is an array aa of length nn . You may perform the following operation on it:

  • Choose two indices ll and rr where 1lrn1 \le l \le r \le n and al=ara_l = a_r . Then, reverse the subsegment from the ll -th to the rr -th element, i. e. set [al,al+1,,ar1,ar][a_l, a_{l + 1}, \ldots, a_{r - 1}, a_r] to [ar,ar1,,al+1,al][a_r, a_{r-1}, \ldots, a_{l+1}, a_l] .

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

输入格式

Each test contains multiple test cases. The first line contains a single integer tt ( 1t1001 \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 nn ( 1n5001 \le n \le 500 ) — the length of array aa and bb .

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n ( 1ain1 \le a_i \le n ) — elements of the array aa .

The third line of each test case contains nn integers b1,b2,,bnb_1, b_2, \ldots, b_n ( 1bin1 \le b_i \le n ) — elements of the array bb .

It is guaranteed that bb is a permutation of aa .

It is guaranteed that the sum of nn over all test cases does not exceed 500500 .

输出格式

For each test case, output "NO" (without quotes) if it is impossible to turn aa into bb using at most n2n^2 operations.

Otherwise, output "YES" (without quotes). Then output an integer kk ( 0kn20 \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 kk lines. The ii -th line should contain two integers lil_i and rir_i ( 1lirin1 \leq l_i \leq r_i \leq n ) — the left and right indices for the ii -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 aa into bb$$ in the third and fourth test cases.

首页