Strongest Fighter (getting TLE in some cases)

import java.util.*;
public class Main {

public static void GreatestInWinK(int[] arr, int K) {
	LinkedList<Integer> qi = new LinkedList<Integer>();
	int i;

// step one
for (i = 0; i < K; i++) {
while (!qi.isEmpty() && arr[i] >= arr[qi.peekLast()]) {
qi.removeLast();
}
qi.addLast(i);
}
// step two
for (; i < arr.length; i++) {

		System.out.print(arr[qi.peek()] + " ");

		while (!qi.isEmpty() && qi.peek() <= i - K) {
			qi.removeFirst();
		}

		while (!qi.isEmpty() && arr[i] >= arr[qi.peekLast()]) {
			qi.removeLast();
		}
		qi.addLast(i);
	}
	System.out.print(arr[qi.peek()] + " ");
}

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	int N = sc.nextInt();
	int[] arr = new int[N];
	for (int i = 0; i < N; i++) {
		arr[i] = sc.nextInt();
	}
	int K = sc.nextInt();
	GreatestInWinK(arr, K);
}

}


try this code. use fastreader for i/o instead of scanner class.and it passes all the test cases comfortably in 5 seconds.scanner is fairly slow

YES it worked… thanks for helping