QOJ.ac

QOJ

Time Limit: 1.5 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#6838. 你只需要假設

Statistics

JB 相信,解決問題只需要假設。為了證明這一點,JB 給了你兩個由 $1$ 到 $n$ 的數構成的排列 $A$ 和 $B$,並希望你輸出一個對 $A$ 進行元素交換的操作序列 $(x_i,y_i)$,使得:

  1. 每對被交換的元素都構成逆序對(也就是在執行第 $i$ 次操作時,$x_i<y_i$ 且 $A_{x_i}>A_{y_i}$)。

  2. 交換序列結束後,$A$ 變成 $B$。

或者判定這是不可能的。請解決這個問題,幫助證明 JB 的信念!

輸入格式

有多筆測試資料。輸入的第一行包含一個整數 $T$,表示測試資料的筆數。對於每筆測試資料:

第一行包含一個整數 $n$($1\le n\le 2021$),表示 $A$ 和 $B$ 的元素個數。

第二行包含 $n$ 個互異的整數 $A_1,A_2,\ldots,A_n$($1\le A_i\le n$),表示陣列 $A$。

第三行包含 $n$ 個互異的整數 $B_1,B_2,\ldots,B_n$($1\le B_i\le n$),表示陣列 $B$。

保證所有測試資料的 $n$ 總和不超過 $2021$。

輸出格式

對於每筆測試資料,如果不存在這樣的序列,輸出一行,包含一個整數 -1。

否則,第一行輸出一個整數 $k$($0\le k\le \frac{n(n-1)}2$),表示交換序列的長度。接著輸出 $k$ 行,每行包含兩個整數 $x_i$ 和 $y_i$($1\le x_i<y_i\le n$),表示第 $i$ 次操作 $\operatorname{swap}(A_{x_i},A_{y_i})$。

範例

輸入格式 1

3
2
1 2
2 1
4
4 1 2 3
1 3 2 4
8
8 7 6 5 4 3 2 1
1 8 7 6 5 4 3 2

輸出格式 1

-1
2
1 2
2 4
7
7 8
6 7
5 6
4 5
3 4
2 3
1 2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.