A15140 | Double Sort
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
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.
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.
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.
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
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted