CFCF2200D.Portal
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给你一个长度为 n 的排列 p。在位置 x 和 y(x<y)各有一个传送门。
位置 i 的传送门最初位于数组第 i 个和第 (i+1) 个元素之间。特别地,如果 i=0,传送门位于第一个元素之前;如果 i=n,传送门位于最后一个元素之后。
你可以无限次执行以下两种操作中的一种:
- 将某个传送门左侧紧邻的元素移除,并将其插入到另一个传送门右侧紧邻处。
- 将某个传送门右侧紧邻的元素移除,并将其插入到另一个传送门左侧紧邻处。
令 O 表示传送门。例如,若 p=[3,O,2,4,O,1]:
- 分别在左、右传送门使用操作 1,得到数组 [O,2,4,O,3,1] 和 [3,O,4,2,O,1]。
- 分别在左、右传送门使用操作 2,得到数组 [3,O,4,2,O,1] 和 [3,1,O,2,4,O]。
请找出你能够通过这些操作得到的排列中字典序最小的一个。注意,传送门在字典序比较中没有影响。
∗ 长度为 n 的排列是一个长度为 n 的数组,包含 1 到 n 的每个整数各一次。
† 如果存在下标 i 使得对于所有 1≤j<i 都有 aj=bj,且 ai<bi,则排列 a 字典序小于排列 b。
输入格式
第一行包含一个整数 t(1≤t≤2⋅104),表示测试用例个数。
每个测试用例的第一行包含三个整数 n、x、y(1≤n≤2⋅105,0≤x<y≤n)。
每个测试用例的第二行包含 n 个整数 p1,p2,…,pn,表示一个长度为 n 的排列。
所有测试用例中的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一行 n 个整数,表示你可以得到的字典序最小的排列。
输入输出样例
输入#1
4 4 0 4 3 1 4 2 3 1 2 3 2 1 5 1 3 1 3 5 2 4 2 0 1 1 2
输出#1
1 4 2 3 2 3 1 1 2 3 5 4 1 2
说明/提示
令 O 表示传送门。
在第一个测试用例中,数组为 [O,3,1,4,2,O]。在左侧传送门使用操作 2 得到 [O,1,4,2,3,O],这是能得到的字典序最小的排列。

上述为描述中的操作动画。
在第二个测试用例中,数组为 [3,O,2,O,1],在左侧传送门使用操作 1 得到 [O,2,O,3,1],这是能得到的字典序最小的排列。
在第四个测试用例中,最优方案是不进行任何操作。