#CF2078B. 凶险迷宫

凶险迷宫

B. 凶险迷宫

时间与内存限制

  • 时间限制:1.51.5
  • 内存限制:256256 MB

题意翻译

迷宫中有 nn 个房间,编号为 ii1in1 \le i \le n)的房间距离出口nin-i 公里。 特别地,房间 nn 就是出口

注意:每个房间都直接连通出口,但无法到达其他任何房间

一开始,每个房间里恰好有一个人。你可以给每个房间 ii 安装一个传送器,会把该房间的人传送到另一个房间 aia_i

迷宫主人发现了你,但允许你继续安装,条件如下:

  1. 所有人必须恰好使用传送器 kk
  2. 任何传送器不能传送到自己所在的房间,即对所有 1in1 \le i \le n,满足 iaii \neq a_i

你需要构造一组传送器配置 a1,a2,,ana_1,a_2,\dots,a_n,满足上述条件,并且让所有人使用 kk 次传送器后,到出口的距离之和最小。 如果有多种合法方案,输出任意一种即可。

输入格式

每个测试包含多组数据。 第一行一个整数 tt1t1041 \le t \le 10^4),表示测试数据组数。

每组数据仅一行,包含两个整数 n,kn, k2n2×1052 \le n \le 2 \times 10^51k1091 \le k \le 10^9)。

保证所有测试用例的 nn 之和不超过 2×1052 \times 10^5

输出格式

对于每组数据,输出一行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,表示传送器的目标位置。 要求满足:

  • 1ain1 \le a_i \le n
  • aiia_i \neq i

样例输入

2
2 1
3 2

样例输出

2 1
2 3 2

样例解释

  • 第一个测试用例:传送后位置为 [2,1][2,1],距离和为 (22)+(21)=1(2-2)+(2-1)=1,是最小值。
  • 第二个测试用例:两次传送后位置为 [3,2,3][3,2,3],距离和为 (33)+(32)+(33)=1(3-3)+(3-2)+(3-3)=1,是最小值。