import java.util.*; import java.util.stream.Collectors; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int[] arr = new int[100001]; while (in.hasNext()) { // 注意 while 处理多个 case int n = in.nextInt(), m = in.nextInt(); in.nextLine(); int k, s; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < n; i++) { k = in.nextInt(); s = in.nextInt(); map.put(k, s); } List<Map.Entry<Integer, Integer>> list = map.entrySet().stream() .sorted(Map.Entry.<Integer, Integer>comparingByValue((num1, num2) -> num2 - num1) // 按value(成绩)降序 .thenComparing(Map.Entry.comparingByKey())) // 分数相同时按key(报考号)升序 .collect(Collectors.toList()); // 转成List int quota = (int)(1.5 * m); // 计划录取名额 int score = list.get(quota - 1).getValue(); // 分数线 int persons = 0; // 实际录取人数 for (Map.Entry<Integer, Integer> entry : list) { if (entry.getValue() < score) break; persons++; } System.out.println(score + " " + (persons)); for (Map.Entry<Integer, Integer> entry : list) { if (entry.getValue() < score) break; System.out.println(entry.getKey() + " " + entry.getValue()); } } } }