307632: CF1385G. Columns Swaps

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

Description

Columns Swaps

题意翻译

你有一个 $2 \times n$ 的矩阵,其中元素为 $1$ 和 $n$ 之间的整数。 定义一次操作为选择**之前没有进行过操作**的一列 $j$ 并交换 $a_{1,j}$ 和 $a_{2,j}$。 你需要最小化操作次数,使得数次操作后该矩阵的两行**均**变成 $1\sim n$ 的排列。 输出操作方案,或输出无解。 $1 \le n \le 2 \times 10^5$

题目描述

You are given a table $ a $ of size $ 2 \times n $ (i.e. two rows and $ n $ columns) consisting of integers from $ 1 $ to $ n $ . In one move, you can choose some column $ j $ ( $ 1 \le j \le n $ ) and swap values $ a_{1, j} $ and $ a_{2, j} $ in it. Each column can be chosen no more than once. Your task is to find the minimum number of moves required to obtain permutations of size $ n $ in both first and second rows of the table or determine if it is impossible to do that. You have to answer $ t $ independent test cases. Recall that the permutation of size $ n $ is such an array of size $ n $ that contains each integer from $ 1 $ to $ n $ exactly once (the order of elements doesn't matter).

输入输出格式

输入格式


The first line of the input contains one integer $ t $ ( $ 1 \le t \le 2 \cdot 10^4 $ ) — the number of test cases. Then $ t $ test cases follow. The first line of the test case contains one integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — the number of columns in the table. The second line of the test case contains $ n $ integers $ a_{1, 1}, a_{1, 2}, \dots, a_{1, n} $ ( $ 1 \le a_{1, i} \le n $ ), where $ a_{1, i} $ is the $ i $ -th element of the first row of the table. The third line of the test case contains $ n $ integers $ a_{2, 1}, a_{2, 2}, \dots, a_{2, n} $ ( $ 1 \le a_{2, i} \le n $ ), where $ a_{2, i} $ is the $ i $ -th element of the second row of the table. It is guaranteed that the sum of $ n $ does not exceed $ 2 \cdot 10^5 $ ( $ \sum n \le 2 \cdot 10^5 $ ).

输出格式


For each test case print the answer: -1 if it is impossible to obtain permutation of size $ n $ in both first and the second rows of the table, or one integer $ k $ in the first line, where $ k $ is the minimum number of moves required to obtain permutations in both rows, and $ k $ distinct integers $ pos_1, pos_2, \dots, pos_k $ in the second line ( $ 1 \le pos_i \le n $ ) in any order — indices of columns in which you need to swap values to obtain permutations in both rows. If there are several answers, you can print any.

输入输出样例

输入样例 #1

6
4
1 2 3 4
2 3 1 4
5
5 3 5 1 4
1 2 3 2 4
3
1 2 1
3 3 2
4
1 2 2 1
3 4 3 4
4
4 3 1 4
3 2 2 1
3
1 1 2
3 2 2

输出样例 #1

0

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

Input

题意翻译

你有一个 $2 \times n$ 的矩阵,其中元素为 $1$ 和 $n$ 之间的整数。 定义一次操作为选择**之前没有进行过操作**的一列 $j$ 并交换 $a_{1,j}$ 和 $a_{2,j}$。 你需要最小化操作次数,使得数次操作后该矩阵的两行**均**变成 $1\sim n$ 的排列。 输出操作方案,或输出无解。 $1 \le n \le 2 \times 10^5$

加入题单

算法标签: