编程题
### 问题描述 给定一个长度为 $N$ 的整数数组 $A$,以及一个整数 $K$。 你可以对这个数组进行以下操作: - 选择索引 $i$ 和 $j$,满足 $|i-j| \geq K$,然后交换 $A_i$ 和 $A_j$。 - 也就是说,你可以交换两个元素,只要它们的距离至少为 $K$。 你的任务是通过多次(包括零次)进行上述操作,使得数组 $A$ 变为字典序最小的数组。 ### 输入格式 第一行输入一个整数 $T$,表示测试用例的数量。 每个测试用例包含两行: - 第一行输入两个整数 $N$ 和 $K$。 - 第二行输入 $N$ 个整数,分别是 $A_1$,$A_2$,...,$A_N$。 ### 输出格式 对于每个测试用例,输出一行,表示操作多次后得到的字典序最小的数组。 ### 样例输入 ```text 2 3 2 3 2 1 4 3 3 2 4 1 ``` ### 样例输出 ```text 1 2 3 1 2 4 3 ``` ### 说明 - 样例中的第一个测试用例:初始时,数组为 $A = [3, 2, 1]$。选取 $i = 1, j = 3$,进行操作后数组变为 $A = [1, 2, 3]$,这是可以得到的字典序最小的数组。 - 样例中的第二个测试用例:初始时,数组为 $A = [3, 2, 4, 1]$。选取 $i = 1, j = 4$,进行操作后数组变为 $A = [1, 2, 4, 3]$,这是可以得到的字典序最小的数组。 ### 评测数据范围 $1 \leq T \leq 10^4$。 $1 \leq N, K \leq 10^5$。 $1 \leq A_i \leq 10^9$。 所有测试用例中 $N$ 的和不超过 $10^6$。
查看答案
赣ICP备20007335号-2