Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.NavigableSet;
- import java.util.TreeSet;
- import static java.lang.Integer.parseInt;
- /**
- * Created by bugkiller on 11/03/19.
- */
- class KthLargestElementInStream {
- private static final int a[] = new int[1000000];
- public static void main(String[] args) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int t, n, k;
- String s[];
- t = parseInt(br.readLine());
- while (t-- > 0) {
- s = br.readLine().split("\\s");
- k = parseInt(s[0]);
- n = parseInt(s[1]);
- s = br.readLine().split("\\s");
- for (int i = 0; i < n; i++) {
- a[i] = parseInt(s[i]);
- }
- System.out.println(convertToString(kthLargest(a, n, k), n));
- }
- }
- static int[] kthLargest(int a[], int n, int k) {
- NavigableSet<Integer> set = new TreeSet<>();
- int result[] = new int[n];
- for (int i = 0; i < n; i++) {
- if (i < k) {
- set.add(a[i]);
- } else {
- if (a[i] > set.first()) {
- set.pollFirst();
- set.add(a[i]);
- }
- }
- if (i < k - 1) {
- result[i] = -1;
- } else {
- result[i] = set.first();
- }
- }
- return result;
- }
- private static String convertToString(int a[], int n) {
- StringBuilder sbr = new StringBuilder();
- for (int i = 0; i < n; i++) {
- sbr.append(a[i]).append(" ");
- }
- sbr.deleteCharAt(sbr.length() - 1);
- return sbr.toString();
- }
- }
Add Comment
Please, Sign In to add comment