# Debugging Help CodeForces Problem Survival of the Weakest

CodeForces Problem Survival of the Weakest (Easy) Round 862 Div 2

## Question

I wrote some code and even read the editorial and my code works for the first 4 given test cases but fails the 5th one. I would try to see what is wrong but the test case is very big.

## My Work

Code in Java:

import java.io.IOException;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

public class Survival_of_the_Weakest_Easy {
public static void main(String[] args) throws IOException {
int N = Integer.parseInt(st.nextToken());
Pair[] arr = new Pair[N];
for (int i = 0; i < N; i++){
arr[i] = new Pair(Integer.parseInt(st.nextToken()), -1);
}
Arrays.sort(arr);
for (int i = 0; i < N; i++){
arr[i].pointer = i + 1;
}

``````    PriorityQueue<Pair> pq = new PriorityQueue<>();

for (int i = 0; i < N - 1; i++){

add += arr[0].val * Math.pow(2, arr.length - 1);
int sub = arr[0].val;

for (int j = 0; j < arr.length; j++){
arr[j].val -= sub;
}

pq.clear();
Pair[] tmp = new Pair[arr.length - 1];

for (int j = 0; j < arr.length - 1; j++){
}

for (int j = 0; j < tmp.length; j++){
Pair p = pq.poll();
tmp[j] = p.clone();

arr[p.pointer].pointer++;

if (arr[p.pointer].pointer < arr.length){
}
}
arr = tmp;
for (int j = 0; j < arr.length; j++){
arr[j].pointer = j + 1;
}
}
System.out.println((int) (arr[0].val + (add) % (Math.pow(10, 9) + 7)));

}
public static class Pair implements Comparable<Pair>{
int val, pointer;
public Pair(int val, int pointer){
this.val = val;
this.pointer = pointer;
}
public int compareTo(Pair p){
return Integer.compare(val, p.val);
}
public Pair clone(){
Pair tmp = new Pair(val, pointer);
return tmp;
}
}
``````

}