package com.fishercoder.solutions;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.PriorityQueue;

public class _703 {
    public static class Solution1 {
        public static class KthLargest {
            PriorityQueue<Integer> heap;
            int maxK;

            public KthLargest(int k, int[] nums) {
                heap = new PriorityQueue<>(Collections.reverseOrder());
                for (int num : nums) {
                    heap.offer(num);
                }
                maxK = k;
            }

            public int add(int val) {
                List<Integer> tmp = new ArrayList<>();
                int result = 0;
                int tmpK = maxK;
                heap.offer(val);
                while (tmpK-- > 0) {
                    result = heap.poll();
                    tmp.add(result);
                }
                for (int num : tmp) {
                    heap.offer(num);
                }
                return result;
            }
        }
    }
}