问题 6661 --打气球

6661: 打气球★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 35  解决: 12
[提交][状态][命题人:]

题目描述

昌昌在玩打气球游戏,屏幕上共有n个气球(编号为1--n),第i个气球的防护力为a[i],每次射击会使被击中的气球的防护力降低k,若气球防护力<=0,则气球会炸掉。
昌昌每次会对防护力最高的气球进行射击,若有多个气球的防护力相同,则会对编号最小的气球进行射击。现在请你帮忙计算一下,气球炸掉的顺序

输入

第一整数为T,表示有T (1≤T≤10000)组测试样例。
每组测试样例的第1行为整数n和k(1≤n≤3e5; 1≤k≤1e9),分别表示气球的数量和被击中气球防护力的下降值。
第2行为n个整数a1,a2,...an(1≤ai≤1e9),表示每个气球的防护力。
测试数据保证所有的n之和不超过3e5。

输出

对于每组测试数据,输出n个整数,分别表示先后炸掉气球的编号。
样例输入
Copy
3
3 2
1 2 3
2 3
1 1
4 3
2 8 3 5
样例输出
Copy
2 1 3 
1 2 
3 1 2 4 

提示

在测试样例1中,气球被射击后防护力的变化如下: [1,2,3]→[1,2,1]→[1,0,1]→[−1,0,1]→[−1,0,−1]。
在测试样例2中,气球被射击后防护力的变化如下: [1,1]→[−2,1]→[−2,−2]
在测试样例3中,气球被射击后防护力的变化如下:[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]

来源

[提交][状态]