#P15601. [2025年山东第一轮集训] 构造排列

    ID: 14813 传统题 3000ms 1024MiB 尝试: 3 已通过: 1 难度: 9 上传者: 标签>算法基础构造数学贪心数据结构树状数组CF2600

[2025年山东第一轮集训] 构造排列

题目描述

给定排列 a1na_{1\sim n}b1nb_{1\sim n},以及非负整数 AABB

构造排列 c1nc_{1\sim n},使得:

  • ac1,ac2,,acna_{c_1},a_{c_2},\ldots,a_{c_n} 的逆序对数量为 AA
  • bc1,bc2,,bcnb_{c_1},b_{c_2},\ldots,b_{c_n} 的逆序对数量为 BB

无解输出 -1。否则若有多组解,任意输出一组。

特别地,对于一个子任务,如果你判断对了是否无解,也能获得 20%20\% 的分数。

输入格式

第一行三个整数 n,A,Bn,A,B

第二行 nn 个整数,表示排列 aa

第三行 nn 个整数,表示排列 bb

输出格式

若无解,输出 -1

否则输出 nn 个整数,表示构造的排列 cc。相邻数字间用一个空格隔开。

如果你的输出不是 -1,你需要保证输出的是一个 1n1\sim n 的排列,这会影响你是否能拿到部分分。

样例 1

样例输入 1

4 1 2
3 1 4 2
2 4 3 1

样例输出 1

4 2 1 3

样例解释 1

ac1,ac2,,acn=(2,1,3,4)a_{c_1},a_{c_2},\ldots,a_{c_n}=(2,1,3,4) bc1,bc2,,bcn=(1,4,2,3)b_{c_1},b_{c_2},\ldots,b_{c_n}=(1,4,2,3)

样例 2

样例输入 2

4 1 0
3 1 4 2
2 4 3 1

样例输出 2

-1

数据范围

对于所有数据,保证:

$$1\le n\le 200000, \qquad 0\le A,B\le \frac{n(n-1)}{2}$$

对于一个子任务,如果你判断对了是否无解,也能获得 20%20\% 的分数。

子任务编号 nn\le 特殊性质 分值
1 1010 10
2 500500 AB 15
3 50005000 A
4 25
5 200000200000 A 10
6 25

特殊性质 A:数据在有解情况下随机:随机生成排列 a,ba,b,再从有解的情况中随机选取 A,BA,B;在 subtask 中至多有 33 组数据。

特殊性质 B:该 subtask 仅包含一个数据,且数据在大样例中下发。