一次操作可以交换 ai 和 ai+k,所以一个位置上的数只能在和它下标同余的那一组里移动。
也就是说,数组会被分成若干组:
给定一个长度为 n 的整数数组 a 和一个正整数 k。你可以进行任意次如下操作:
在可以无限次操作的前提下,请你给出最终能得到的字典序最大的数组。
【字典顺序比较】从两个数组的第一个元素开始逐个比较,直到找到第一个不同的元素,较大元素所在的数组的字典序较大。
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤2×105) 代表数据组数,每组测试数据描述如下:
第一行输入两个整数 n,k(1≤n≤2×105,1≤k≤n);
第二行输入 n 个整数 a1,a2,…,an(−109≤ai≤109)。
保证所有测试中 n 的总和不超过 5×105。
对于每组测试数据,输出一行 n 个整数,表示在上述操作下可获得的字典序最大的数组。
输入
3
5 2
3 1 4 1 5
6 3
1 6 2 5 3 4
4 1
9 8 7 6
输出
5 1 4 1 3
5 6 4 1 3 2
9 8 7 6