For this Question: You are playing a number game where you will receive a number every day for the next N days. Game goes as follows : Every day you get a number, you include it into your list. You take the maximum number in the list, half it and put it back into the list. Initially the list is empty.

You play the game for N days, what is the maximum number in your list after N days?First line contains a single integer N.
Next line contains N space separated integers.

<b>Constraints</b>
1 <= N <= 10<sup>5</sup>
1 <= numbers <= 10<sup>9</sup>A single integer denoting the answer.Input:
4
12 10 4 9

Output:
5

Explanation:
first day => 12 => list = {12} => maximum is 12 so list = {6} 
second day => 10 => list = {6, 10} => maximum is 10 so list = {6, 5}
third day => 4 => list = {6, 5, 4} => maximum is 6 so list = {3, 5, 4}
fourth day => 9 => list = { 3, 5, 4, 9} => maximum is 9 so list = {3, 5, 4, 4}, I have written this Solution Code: import java.io.*;
import java.util.*;

public class Main {
    
  
    
    public static void main(String[] args) {
        
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        OutputWriter out = new OutputWriter(outputStream);
        

        int n=Integer.parseInt(in.next());
        PriorityQueue<Integer> pq=new PriorityQueue<>(Collections.reverseOrder());
        
        for(int i=0;i<n;i++){
            int x=Integer.parseInt(in.next());
            pq.add(x);
            x=pq.poll();
            pq.add(x/2);
        }
        out.print(pq.peek());
        out.close();
    }

    
    static class InputReader {
        BufferedReader reader;
        StringTokenizer tokenizer;
        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

    }

    static class OutputWriter {
        private final PrintWriter writer;

        public OutputWriter(OutputStream outputStream) {
            writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
        }

        public OutputWriter(Writer writer) {
            this.writer = new PrintWriter(writer);
        }

        public void print(Object... objects) {
            for (int i = 0; i < objects.length; i++) {
                if (i != 0) {
                    writer.print(' ');
                }
                writer.print(objects[i]);
            }
        }

        public void println(Object... objects) {
            print(objects);
            writer.println();
        }

        public void close() {
            writer.close();
        }

        public void println(int i) {
            writer.println(i);
        }

    }
}
, In this Programming Language: Java, Now tell me if this Code is compilable or not?