1. 程式人生 > >JavaStudy——0065:誰考了第k名

JavaStudy——0065:誰考了第k名

總時間限制: 1000ms 記憶體限制: 65536kB

描述
在一次考試中,每個學生的成績都不相同,現知道了每個學生的學號和成績,求考第k名學生的學號和成績。

輸入
第一行有兩個整數,分別是學生的人數n(1≤n≤100),和求第k名學生的k(1≤k≤n)。
其後有n行資料,每行包括一個學號(整數)和一個成績(浮點數),中間用一個空格分隔。
輸出
輸出第k名學生的學號和成績,中間用空格分隔。(注:請用%g輸出成績)

樣例輸入

5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9

樣例輸出

90788004 68.4

Accepted程式碼

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt(),m=in.nextInt();
        S[] s=new S[n];
        for(int i=0;i<n;i++) {
            s[i] =new S();
            s[i].id=in.nextInt
(); s[i].a=in.nextDouble(); } Arrays.sort(s,new MyComparator()); System.out.println(s[m-1].id+" "+s[m-1].a); in.close(); } } class S { public int id; public double a; } class MyComparator implements Comparator<S> { public int compare
(S t1,S t2) { if(t1.a==t2.a) return t1.id-t2.id; else if(t2.a>t1.a) return 1; else return -1; } }