1739 GPA排序 個人部落格:doubleq.win

自為風月馬前卒發表於2017-03-21

個人部落格:doubleq.win

1739 GPA排序

 

 時間限制: 1 s
 空間限制: 128000 KB
 題目等級 : 青銅 Bronze
 
 
 
題目描述 Description

奈米猿和mmm是好朋友。Mmm的成績很差,以至於GPA(平均績點)在年級內倒數。年級內一共有N位同學,每位同學有自己的GPA,以及已修學分數,定義GPT=GPA×已修學分數。奈米猿為了幫助mmm提高成績,給mmm提了一個要求:新學期的GPA要超過級內排名第K位同學。

為了幫助理解,這裡給出一個例子:

排名

GPA

已修學分數

GPT

1

3.8

21

79.8

2

3.7

23

85.1

3

3.65

20

73

4(跟3一樣)

3.65

18

65.7

5

3.3

22

72.6

現在給出年級裡面每位同學GPT(只有一位小數),以及他們的已修學分數。你需要幫助mmm把排名第K位的同學的GPA求出來。

輸入描述 Input Description

第1行為兩個整數N,K;

第2至N+1行,每行1個非負實數和1個整數,分別表示GPT和已修學分數。

輸出描述 Output Description

1個實數,表示排名第K同學的GPA,保留2位小數輸出。

樣例輸入 Sample Input

5 3

73 20

79.8 21

72.6 22

85.1 23

65.7 18

樣例輸出 Sample Output

3.65

資料範圍及提示 Data Size & Hint

50%的資料滿足:1≤N≤100

100%的資料滿足:1≤K≤N≤100000,GPT小數點後至多一位,GPA至多4.0

 

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 using namespace std;
 5 int n,k;
 6 double a[1000001];
 7 double b[1000001];
 8 double c[1000001];
 9 int main()
10 {
11     cin>>n>>k;
12     for(int i=1;i<=n;i++)
13     {
14         cin>>a[i];
15         cin>>b[i];
16         c[i]=a[i]/b[i];
17     }
18     sort(c+1,c+n+1);
19     printf("%.2lf",c[n-k+1]);
20     return 0;
21 }

 

相關文章