#P16075. [Oni2019]lexicografic
[Oni2019]lexicografic
题目描述
给定一个长度为 的序列 ,其中所有元素都是正整数,元素之间不一定互不相同。
你可以进行如下操作:
- 选择两个相邻位置上的元素,并交换它们。
给定一个自然数 ,请你求出在进行至多 次相邻交换后,能够得到的字典序最小的序列。
输入格式
第一行包含一个整数 ,表示测试组数。
接下来依次给出 组测试数据。每组测试数据包含两行:
第一行包含两个整数 。
第二行包含 个整数,表示序列 。
输出格式
对于每组测试数据,输出一行,包含 个整数,表示在原序列基础上进行至多 次相邻交换后能得到的字典序最小序列。
数据范围与约定
- ;
- ;
- 一个输入文件中,所有测试组的 之和不超过 ;
- ;
- ;
- 注意: 可能较大,需要使用 64 位整数读入。
- 对某个测试文件计分时,需要该文件内所有测试组都回答正确。
字典序定义如下:序列 比序列 字典序更小,当且仅当存在一个位置 ,满足:
$$a_1=b_1,a_2=b_2,\ldots,a_{P-1}=b_{P-1},\qquad a_P<b_P.$$子任务
| 子任务 | 分值 | 限制 |
|---|---|---|
| 1 | 5 | |
| 2 | 7 | |
| 3 | 23 | |
| 4 | ||
| 5 | 12 | |
| 6 | 24 | |
| 7 | 25 | 无额外限制 |
样例
输入
3
5 2
4 2 3 1 1
4 3
2 1 3 4
6 4
5 3 5 3 4 6
输出
2 3 4 1 1
1 2 3 4
3 3 5 4 5 6
样例解释
对于第一组测试数据,序列为:
最多可以进行 次相邻交换。
先交换 和 ,得到:
再交换当前第 个和第 个元素,得到:
这是在至多两次相邻交换后可以得到的字典序最小序列。