310542: CF1849B. Monsters

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

B. Monsterstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

Monocarp is playing yet another computer game. And yet again, his character is killing some monsters. There are $n$ monsters, numbered from $1$ to $n$, and the $i$-th of them has $a_i$ health points initially.

Monocarp's character has an ability that deals $k$ damage to the monster with the highest current health. If there are several of them, the one with the smaller index is chosen. If a monster's health becomes less than or equal to $0$ after Monocarp uses his ability, then it dies.

Monocarp uses his ability until all monsters die. Your task is to determine the order in which monsters will die.

Input

The first line contains a single integer $t$ ($1 \le t \le 10^4$) — the number of test cases.

The first line of each test case contains two integers $n$ and $k$ ($1 \le n \le 3 \cdot 10^5$; $1 \le k \le 10^9$) — the number of monsters and the damage which Monocarp's ability deals.

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$) — the initial health points of monsters.

The sum of $n$ over all test cases doesn't exceed $3 \cdot 10^5$.

Output

For each test case, print $n$ integers — the indices of monsters in the order they die.

ExampleInput
3
3 2
1 2 3
2 3
1 1
4 3
2 8 3 5
Output
2 1 3 
1 2 
3 1 2 4 
Note

In the first example, the health points change as follows: $[1, 2, \underline{3}] \rightarrow [1, \underline{2}, 1] \rightarrow [\underline{1}, 0, 1] \rightarrow [-1, 0, \underline{1}] \rightarrow [-1, 0, -1]$. The monster that is going to take damage the next time Monocarp uses his ability is underlined.

In the second example, the health points change as follows: $[\underline{1}, 1] \rightarrow [-2, \underline{1}] \rightarrow [-2, -2]$.

In the third example, the health points change as follows: $[2, \underline{8}, 3, 5] \rightarrow [2, \underline{5}, 3, 5] \rightarrow [2, 2, 3, \underline{5}] \rightarrow [2, 2, \underline{3}, 2] \rightarrow [\underline{2}, 2, 0, 2] \rightarrow [-1, \underline{2}, 0, 2] \rightarrow [-1, -1, 0, \underline{2}] \rightarrow [-1, -1, 0, -1]$.

Input

题意翻译

小 C 在玩一款全新开放世界冒险游戏。 本关卡有 $ n $ 个怪物,小 C 一刀 $ k $ 血,第 $ i $ 怪物初始 $ a_i $ 血。 怪物 0 血或负血会死掉。 小 C 每次打击目前剩余血量最多的怪物,如有多个打击编号最小的。 按照小 C 击杀怪物的顺序输出怪物编号。 **多测**,$ t $ 组数据。 $ 1 \le t \le 10^4 $,$ 1 \le n \le 3 \times 10^5 $,$ 1 \le k,a_i \le 10^9 $。 感谢@[船酱魔王](/user/420998)提供的翻译。

Output

题目大意:
Monocarp 在玩一个电脑游戏,他的角色正在击败一些怪物。有 n 个怪物,从 1 到 n 编号,第 i 个怪物初始有 a_i 的生命值。Monocarp 的角色有一个技能,可以给当前生命值最高的怪物造成 k 点伤害。如果有多个生命值最高的怪物,则选择编号较小的那个。如果在使用技能后怪物的生命值降至 0 或以下,那么它会死亡。Monocarp 使用他的技能直到所有怪物死亡。任务是确定怪物死亡的顺序。

输入输出数据格式:
输入:
- 第一行包含一个整数 t(1 ≤ t ≤ 10^4)——测试用例的数量。
- 每个测试用例的第一行包含两个整数 n 和 k(1 ≤ n ≤ 3 × 10^5;1 ≤ k ≤ 10^9)——怪物的数量和 Monocarp 的技能造成的伤害。
- 第二行包含 n 个整数 a_1, a_2, …, a_n(1 ≤ a_i ≤ 10^9)——怪物的初始生命值。
- 所有测试用例的 n 之和不超过 3 × 10^5。

输出:
- 对于每个测试用例,打印 n 个整数——怪物死亡的顺序。

示例:
输入:
```
3
3 2
1 2 3
2 3
1 1
4 3
2 8 3 5
```
输出:
```
2 1 3
1 2
3 1 2 4
```

注意:
- 在第一个例子中,生命值的变化如下:[1, 2, **3**] → [1, **2**, 1] → [**1**, 0, 1] → [-1, 0, **1**] → [-1, 0, -1]。即将受到 Monocarp 使用技能伤害的怪物被加粗。
- 在第二个例子中,生命值的变化如下:[**1**, 1] → [-2, **1**] → [-2, -2]。
- 在第三个例子中,生命值的变化如下:[2, **8**, 3, 5] → [2, **5**, 3, 5] → [2, 2, 3, **5**] → [2, 2, **3**, 2] → [**2**, 2, 0, 2] → [-1, **2**, 0, 2] → [-1, -1, 0, **2**] → [-1, -1, 0, -1]。题目大意: Monocarp 在玩一个电脑游戏,他的角色正在击败一些怪物。有 n 个怪物,从 1 到 n 编号,第 i 个怪物初始有 a_i 的生命值。Monocarp 的角色有一个技能,可以给当前生命值最高的怪物造成 k 点伤害。如果有多个生命值最高的怪物,则选择编号较小的那个。如果在使用技能后怪物的生命值降至 0 或以下,那么它会死亡。Monocarp 使用他的技能直到所有怪物死亡。任务是确定怪物死亡的顺序。 输入输出数据格式: 输入: - 第一行包含一个整数 t(1 ≤ t ≤ 10^4)——测试用例的数量。 - 每个测试用例的第一行包含两个整数 n 和 k(1 ≤ n ≤ 3 × 10^5;1 ≤ k ≤ 10^9)——怪物的数量和 Monocarp 的技能造成的伤害。 - 第二行包含 n 个整数 a_1, a_2, …, a_n(1 ≤ a_i ≤ 10^9)——怪物的初始生命值。 - 所有测试用例的 n 之和不超过 3 × 10^5。 输出: - 对于每个测试用例,打印 n 个整数——怪物死亡的顺序。 示例: 输入: ``` 3 3 2 1 2 3 2 3 1 1 4 3 2 8 3 5 ``` 输出: ``` 2 1 3 1 2 3 1 2 4 ``` 注意: - 在第一个例子中,生命值的变化如下:[1, 2, **3**] → [1, **2**, 1] → [**1**, 0, 1] → [-1, 0, **1**] → [-1, 0, -1]。即将受到 Monocarp 使用技能伤害的怪物被加粗。 - 在第二个例子中,生命值的变化如下:[**1**, 1] → [-2, **1**] → [-2, -2]。 - 在第三个例子中,生命值的变化如下:[2, **8**, 3, 5] → [2, **5**, 3, 5] → [2, 2, 3, **5**] → [2, 2, **3**, 2] → [**2**, 2, 0, 2] → [-1, **2**, 0, 2] → [-1, -1, 0, **2**] → [-1, -1, 0, -1]。

加入题单

上一题 下一题 算法标签: