309454: CF1681C. Double Sort

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

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)$。 如果有多个答案,则打印其中任何一个。你不必尽量减少移动的次数。

题目描述

You are given two arrays $ a $ and $ b $ , both consisting of $ n $ integers. In one move, you can choose two indices $ i $ and $ j $ ( $ 1 \le i, j \le n $ ; $ i \neq j $ ) and swap $ a_i $ with $ a_j $ and $ b_i $ with $ b_j $ . You have to perform the swap in both arrays. You are allowed to perform at most $ 10^4 $ moves (possibly, zero). Can you make both arrays sorted in a non-decreasing order at the end? If you can, print any sequence of moves that makes both arrays sorted.

输入输出格式

输入格式


The first line contains a single integer $ t $ ( $ 1 \le t \le 100 $ ) — the number of testcases. The first line of each testcase contains a single integer $ n $ ( $ 2 \le n \le 100 $ ) — the number of elements in both arrays. The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le n $ ) — the first array. The third line contains $ n $ integers $ b_1, b_2, \dots, b_n $ ( $ 1 \le b_i \le n $ ) — the second array.

输出格式


For each testcase, print the answer. If it's impossible to make both arrays sorted in a non-decreasing order in at most $ 10^4 $ moves, print -1. Otherwise, first, print the number of moves $ k $ $ (0 \le k \le 10^4) $ . Then print $ i $ and $ j $ for each move $ (1 \le i, j \le n $ ; $ i \neq j) $ . If there are multiple answers, then print any of them. You don't have to minimize the number of moves.

输入输出样例

输入样例 #1

3
2
1 2
1 2
2
2 1
1 2
4
2 3 1 2
2 3 2 3

输出样例 #1

0
-1
3
3 1
3 2
4 3

Input

题意翻译

### 题目描述 你被给予了两个数组 $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)$。 如果有多个答案,则打印其中任何一个。你不必尽量减少移动的次数。

Output

题目大意:
你被给定了两个数组 $a$ 和 $b$,它们都包含 $n$ 个整数。

在一步操作中,你可以选择两个索引 $i$ 和 $j$ ($1 \leq i,j \leq n$; $i \neq 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 \leq i,j \leq n$; $i \neq j$)。

如果有多个答案,则输出其中任何一个。你不需要尽量减少移动的次数。题目大意: 你被给定了两个数组 $a$ 和 $b$,它们都包含 $n$ 个整数。 在一步操作中,你可以选择两个索引 $i$ 和 $j$ ($1 \leq i,j \leq n$; $i \neq 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 \leq i,j \leq n$; $i \neq j$)。 如果有多个答案,则输出其中任何一个。你不需要尽量减少移动的次数。

加入题单

算法标签: