CF1681C Double Sort
题目描述
你被给予了两个数组 $a$ 和 $b$,他们都有 $n$ 个数子。
在一步中,你可以选择两个数 $i$ 和 $j(1 \leq i,j \leq n; i \ne j)$ 并交换 $a_i$、$a_j$ 和 $b_i$、$b_j$。你必须交换这两个数组。
你最多可以执行 $10^4$ 次交换操作(可能为零次)。你能使两个数组都排序成非递减顺序么?如果可以,请打印所有使两个数组都成非递减顺序的移动序列。
输入格式
第一行包含一个整数 $t(1 \leq t \leq 100)$ — 测试用例的数量。
每个测试用例的第一行包含一个整数 $n(2 \leq n \leq 100)$ — 两个数组中的元素数。
第二行包括 $n$ 个整数 $a_1,a_2......a_n(1 \leq a_i \leq n)$ — 第一个数组。
第三行包括 $n$ 个整数 $b_1,b_2......b_n(1 \leq b_i \leq n)$ — 第二个数组。
输出格式
对于每个测试用例,输出答案。如果不可能使两个数组以最多 $10^4$ 的非递减顺序排序,则输出 $-1$。否则,首先,打印移动次数 $k(0 \leq k \leq 10^4)$。然后打印每一步的 $i$ 和 $j(1≤i,j≤n ; i \neq j)$。
如果有多个答案,则打印其中任何一个。你不必尽量减少移动的次数。