input:
1
1 2 3 4 5 6 7
3 5
2
output:
4
被nextInt换行搞得很难受,索性全用nextline,找第k小的数用优先队列加大根堆。
代码:
import java.util.*;
public class Main
{
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
int e_num = Integer.parseInt(scan.nextLine());
int result = 0;
while(e_num > 0){
String[] num = scan.nextLine().split(" ");
String[] sf = scan.nextLine().split(" ");
int s_num = Integer.parseInt(sf[0]);
int f_num = Integer.parseInt(sf[1]);
int target = Integer.parseInt(scan.nextLine());
Queue<Integer> queue = new PriorityQueue<>();
for (int i = s_num-1; i < f_num; i++) {
queue.add(Integer.parseInt(num[i]));
}
while (target > 1) {
queue.poll();
target --;
}
result = queue.peek();
System.out.println(result);
e_num --;
}
}
}