#1619. 传送门
传送门
题目描述
给定一个长度为 的排列 。有两个传送门分别位于位置 和 ()。
传送门 初始时位于第 个元素和第 个元素之间。具体来说,如果 ,传送门位于数组第一个元素之前;如果 ,传送门位于数组最后一个元素之后。
你可以执行以下两种操作任意多次:
- 删除一个传送门左侧紧邻的元素,并将其插入到另一个传送门右侧紧邻的位置。
- 删除一个传送门右侧紧邻的元素,并将其插入到另一个传送门左侧紧邻的位置。
用 表示传送门。例如,如果 是 $[3,\mathbf{\color{red}{\mathcal{O}}},2,4,\mathbf{\color{red}{\mathcal{O}}},1]$:
- 分别对左传送门和右传送门使用操作 1,得到数组 $[\mathbf{\color{red}{\mathcal{O}}},2,4,\mathbf{\color{red}{\mathcal{O}}},3,1]$ 和 $[3,\mathbf{\color{red}{\mathcal{O}}},4,2,\mathbf{\color{red}{\mathcal{O}}},1]$。
- 分别对左传送门和右传送门使用操作 2,得到数组 $[3,\mathbf{\color{red}{\mathcal{O}}},4,2,\mathbf{\color{red}{\mathcal{O}}},1]$ 和 $[3,1,\mathbf{\color{red}{\mathcal{O}}},2,4,\mathbf{\color{red}{\mathcal{O}}}]$。
求使用这些操作可以得到的字典序最小的排列。注意,传送门不影响排列的字典序比较。
长度为 的排列是一个包含 到 每个整数恰好一次的数组。
如果存在一个索引 ,使得对于所有 有 ,且 ,则排列 的字典序小于排列 。
输入格式
第一行包含一个整数 ()—— 测试用例的数量。
对于每个测试用例,第一行包含三个整数 、 和 (,)。
每个测试用例的第二行包含 个整数 —— 一个长度为 的排列。
所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一行包含 个整数 —— 可以得到的字典序最小的排列。
输入输出样例 #1
输入 #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
说明/提示
用 表示传送门。
在第一个测试用例中,数组是 $[\mathbf{\color{red}{\mathcal{O}}},3,1,4,2,\mathbf{\color{red}{\mathcal{O}}}]$。对左传送门使用操作 2,得到 $[\mathbf{\color{red}{\mathcal{O}}},1,4,2,3,\mathbf{\color{red}{\mathcal{O}}}]$,这是可以得到的最小的字典序排列。
在第二个测试用例中,数组是 $[3,\mathbf{\color{red}{\mathcal{O}}},2,\mathbf{\color{red}{\mathcal{O}}},1]$。对左传送门使用操作 1,得到 $[\mathbf{\color{red}{\mathcal{O}}},2,\mathbf{\color{red}{\mathcal{O}}},3,1]$,这是可以得到的最小的字典序排列。
在第四个测试用例中,最优方案是不进行任何操作。