JavaStudy——0065:誰考了第k名
阿新 • • 發佈:2018-11-15
總時間限制: 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;
}
}