#CF2200D. Portal
Portal
题目描述
给你一个长度为 的排列 。在位置 和 ()各有一个传送门。
位置 的传送门最初位于数组第 个和第 个元素之间。特别地,如果 ,传送门位于第一个元素之前;如果 ,传送门位于最后一个元素之后。
你可以无限次执行以下两种操作中的一种:
- 将某个传送门左侧紧邻的元素移除,并将其插入到另一个传送门右侧紧邻处。
- 将某个传送门右侧紧邻的元素移除,并将其插入到另一个传送门左侧紧邻处。
令 表示传送门。例如,若 $p = [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}}}]$。
请找出你能够通过这些操作得到的排列中字典序最小的一个。注意,传送门在字典序比较中没有影响。
长度为 的排列是一个长度为 的数组,包含 到 的每个整数各一次。
如果存在下标 使得对于所有 都有 ,且 ,则排列 字典序小于排列 。
输入格式
第一行包含一个整数 (),表示测试用例个数。
每个测试用例的第一行包含三个整数 、、(,)。
每个测试用例的第二行包含 个整数 ,表示一个长度为 的排列。
所有测试用例中的 之和不超过 。
输出格式
对于每个测试用例,输出一行 个整数,表示你可以得到的字典序最小的排列。
样例
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 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]$,这是能得到的字典序最小的排列。
在第四个测试用例中,最优方案是不进行任何操作。
由 ChatGPT 5 翻译
来源
Codeforces 2200D,英文题名 Portal。