#NK202509L. 乒乓

乒乓

题目描述

nn 个同学轮流在一张桌子上打乒乓球。第 ii 个同学的能力值为 aia_i,能力值两两不同。以下是他们打乒乓球的规则:

  • 一开始,场上只有一个人,编号 11。队列 Q={2,3,,n}Q = \{2, 3, \ldots, n\} 里从前到后表示当前排队的人。
  • 接下来每一轮,处在队首的选手会弹出队列,与和场上的人进行乒乓球比赛。进行比赛的时候,能力值高的人会赢。比赛的败者加入队尾,而胜者留在场上。

但是,为了避免强者一直霸场,他们额外制定了反差断规则:如果一个人已经连续参加了 n1n-1 场比赛,则无论他是否攻守都会视作他输了本轮,他会加入队尾,而对手会留在场上。

他们一直进行下去,直到进行了 kk 轮比赛,你可以算出每个人参加了多少次比赛吗?

输入格式

输入包含多组数据。第一行一个正整数 T (1T10000)T \ (1 \le T \le 10000) 表示数据组数。每个数据的描述如下:

  • 第一行包含两个整数 $n, k \ (3 \le n \le 2 \times 10^5, 1 \le k \le 10^9)$。
  • 第二行包含 nn 个整数 a1,a2,,an (1ai109)a_1, a_2, \ldots, a_n \ (1 \le a_i \le 10^9)

保证所有 aia_i 都是不同的,并且 TT 组数据中 nn 的总和不会超过 2×1052 \times 10^5

输出格式

对于每组数据,输出一行 nn 个整数,第 ii 个整数表示输入中的第 ii 个同学一共参加了多少场比赛。

输入输出样例 #1

输入 #1

2
3 3
100 50 20
3 5
2 3 1

输出 #1

3 2 1
4 4 2

说明/提示

对于样例,发生了以下情况:

  1. 场上 1,[队列 2, 3]:1 vs 2:1 获胜,[队列变为 3, 2]
  2. 场上 1,[队列 3, 2]:1 vs 3:1 获胜,[队列变为 2, 3]
  3. 场上 1,[队列 2, 3]:1 vs 2:2 获胜(触发反差断规则),[队列变为 3, 1]