#arc043c. [arc043_c]転倒距離
[arc043_c]転倒距離
问题描述
将从1到N的整数重新排列成一个长度为N的序列称为排列。
当有相同大小的排列X和Y时,X和Y中数字顺序交换的组合数称为X和Y的倒置距离。
例如,对于[3, 1, 4, 2, 5]和[2, 5, 3, 4, 1],由于以下7个组的顺序被交换,所以倒置距离为7。
- (1, 2), (1, 4), (1, 5), (2, 3), (2, 4), (3, 5), (4, 5)
给定长度为N的排列A和B。
判断是否存在一个和A、B的倒置距离相等的长度为N的排列,并找出一个。
如果答案不唯一,可以输出任意一个。
输入
输入以以下格式从标准输入给出:
N A1 A2 .. AN B1 B2 .. BN
- 第1行给出一个表示排列的长度的整数N (1 ≤ N ≤ 10^5)。
- 第2行给出N个整数,表示排列A的元素,以空格分隔。第i个整数是A的第i个元素Ai(1 ≤ Ai ≤ N)。
- 第3行给出N个整数,表示排列B的元素,以空格分隔。第i个整数是B的第i个元素Bi(1 ≤ Bi ≤ N)。
- 若i ≠ j,则满足Ai ≠ Aj和Bi ≠ Bj。
部分分
该问题有部分得分。
- 如果满足1≤N≤3,000的数据集,则获得30分。
- 如果满足1≤N≤10^5的数据集,则额外给出70分。总共可获得100分。
输出
如果不存在满足条件的排列,则输出-1。否则,在一行上输出满足条件的排列,以空格分隔。
示例1
输入:
5
1 2 3 4 5
5 4 3 2 1
输出:
5 2 1 3 4
所输出的排列C,A和C的倒置距离都为5,B和C的倒置距离也为5。
示例2
输入:
5
1 2 3 4 5
1 2 4 3 5
输出:
-1
不存在既与A的倒置距离相等又与B的倒置距离相等的排列。
示例3
输入:
9
3 1 4 2 5 9 7 6 8
2 1 8 3 5 7 9 4 6
输出:
3 1 2 8 4 5 7 9 6