题目描述
给定两个 1,2,…,n 的排列:
a1,a2,…,an
和
b1,b2,…,bn
同时给定两个非负整数 A,B,满足
0≤A,B≤2n(n−1)
请构造一个 1,2,…,n 的排列
c1,c2,…,cn
使得:
- 序列 ac1,ac2,…,acn 的逆序对数量恰好为 A;
- 序列 bc1,bc2,…,bcn 的逆序对数量恰好为 B。
若不存在满足条件的排列,输出 -1;若存在多组解,输出任意一组即可。
一个排列 p1,p2,…,pn 的逆序对数量,定义为满足
1≤i<j≤n,pi>pj
的有序对 (i,j) 的数量。
输入格式
第一行包含三个整数 n,A,B。
第二行包含 n 个整数 a1,a2,…,an。
第三行包含 n 个整数 b1,b2,…,bn。
保证 a 和 b 都是 1,2,…,n 的排列。
输出格式
若无解,输出一行一个整数:
-1
否则,输出一行 n 个整数 c1,c2,…,cn,表示你构造的排列。相邻整数之间用空格分隔。
本题使用 Special Judge。只要输出满足题意的任意一种合法构造即可。
样例 1
4 1 2
3 1 4 2
2 4 3 1
4 2 1 3
样例 1 解释
对于输出的排列 c=(4,2,1,3):
$$(a_{c_1},a_{c_2},a_{c_3},a_{c_4})=(a_4,a_2,a_1,a_3)=(2,1,3,4)$$
其逆序对数量为 1。
同时:
$$(b_{c_1},b_{c_2},b_{c_3},b_{c_4})=(b_4,b_2,b_1,b_3)=(1,4,2,3)$$
其逆序对数量为 2。
样例 2
4 1 0
3 1 4 2
2 4 3 1
-1
数据范围
对于全部数据:
1≤n≤200000
0≤A,B≤2n(n−1)
保证输入的 a 和 b 均为 1,2,…,n 的排列。