#P0589. 交换重排(Swap to Rearrange)

交换重排(Swap to Rearrange)

题目描述

给定两个长度为 nn 的数组 aabb。你可以选择若干个下标 ii,对每个被选择的下标交换 aia_ibib_i。每个下标最多选择一次。

你的目标是让操作后的数组 aa 成为数组 bb 的一个重排。也就是说,两个数组的元素多重集合必须相同。

如果无法做到,输出 1-1;否则输出任意一种操作方案,不要求操作次数最少。

输入格式

第一行一个整数 tt,表示测试组数。

每组数据第一行一个整数 nn

第二行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

第三行 nn 个整数 b1,b2,,bnb_1,b_2,\ldots,b_n

输出格式

对每组数据,若无解,输出 1-1

否则输出两行:第一行输出操作次数 ss;第二行输出 ss 个整数,表示选择交换的下标。每个下标最多出现一次。

若有多种方案,输出任意一种即可。

样例

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

2
3 4

说明

第一个样例中,交换下标 2244 后,a=[1,2,3,4]a=[1,2,3,4]b=[2,1,4,3]b=[2,1,4,3],此时 aabb 的一个重排。

第二个样例中,无论如何操作都无法达成目标。

数据范围

1t1041\le t\le10^41n1061\le n\le10^61ai,bin1\le a_i,b_i\le n

所有测试组的 nn 之和不超过 10610^6