import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int line = 0; int totalTester = 0; int neenTester = 0; int viewTester = 0; String[] gradeArr = null; while (cin.hasNextLine()) { if (line == 0) { String first = cin.nextLine(); String[] a = first.split(" "); totalTester = Integer.parseInt(a[0]); neenTester = Integer.parseInt(a[1]); viewTester = (int) (neenTester * 1.5); gradeArr = new String[totalTester]; line++; continue; } gradeArr[line - 1] = cin.nextLine(); line++; if (line == totalTester + 1) { Arrays.sort(gradeArr, new Comparator<String>() { @Override public int compare(String o1, String o2) { String[] testerOne = o1.split(" "); int testOneNo = Integer.parseInt(testerOne[0]); int testOneScore = Integer.parseInt(testerOne[1]); String[] testerTwo = o2.split(" "); int testTwoNo = Integer.parseInt(testerTwo[0]); int testTwoScore = Integer.parseInt(testerTwo[1]); if (testOneScore > testTwoScore){ return -1; } if (testOneScore == testTwoScore){ if (testOneNo < testTwoNo){ return -1; } return 1; } return 1; } }); StringBuffer result = new StringBuffer(); String[] viewTest = gradeArr[viewTester - 1].split(" "); int viewTestNo = Integer.parseInt(viewTest[0]); int viewTestScore = Integer.parseInt(viewTest[1]); int count = 0; for (int k = 0; k < totalTester; k++) { String[] test = gradeArr[k].split(" "); int testNo = Integer.parseInt(test[0]); int testScore = Integer.parseInt(test[1]); if (testScore < viewTestScore) { break; } result.append(gradeArr[k]).append("\n"); count++; } String firstLine = viewTestScore + " " + count + "\n"; result.insert(0, firstLine); System.out.println(result); } } } } /************************************************************** Problem: 2285 User: admin Language: Java Result: Accepted Time:7240 ms Memory:80608 kb ****************************************************************/