-
Notifications
You must be signed in to change notification settings - Fork 0
/
eduround_152_div2_B.java
51 lines (48 loc) · 1.39 KB
/
eduround_152_div2_B.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.*;
public class eduround_152_div2_B {
static class Pair{
int x, y;
Pair(int x, int y){
this.x = x;
this.y = y;
}
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t --> 0){
int n = sc.nextInt();
int k = sc.nextInt();
int[] a = new int[n];
for(int i = 0;i<n;i++){
a[i] = sc.nextInt();
}
PriorityQueue<Pair> pq = new PriorityQueue<>((a1,b1) -> {
if(a1.x == b1.x){
return a1.y - b1.y;
}
else{
return b1.x - a1.x;
}
});
for(int i = 0;i<n;i++){
pq.offer(new Pair(a[i], i));
}
List<Integer> list = new ArrayList<>();
while(!pq.isEmpty()){
int health = pq.peek().x;
int ind = pq.poll().y+1;
if(health - k <= 0){
list.add(ind);
}
else{
pq.offer(new Pair((health - k)%k, ind-1));
}
}
for(int p : list){
System.out.print(p+" ");
}
System.out.println();
}
}
}