题目描述
ftiasch 和nm 是好朋友。nm 的成绩很差,以至于GPA(平均绩点)在系内倒数。系内一共有N 位
同学,每位同学有自己的GPA,以及已修学分数,定义GPT = GPA 已修学分数。ftiasch 为了帮助
nm 提高成绩,给nm 提了一个要求:新学期的GPA 要超过系内排名第K 位的同学。
为了帮助理解,给出一个例子:
现在给出系里面每位同学的GPT(只有一位小数),以及他们的已修学分。你需要帮助nm 把排名
第K 位的同学的GPA 求出来。
输入
第1 行,2 个整数N, K。第2 (N + 1) 行,每行1 个非负实数和1 个整数,分别表示GPT 和已
修学分数,注意所有同学的学分都在[1; 250] 的范围。
输出
第1 行,1 个实数,表示排名第K 同学的GPA,保留2 位小数输出。
样例输入
5 3
73 20
79.8 21
72.6 22
85.1 23
65.7 18
求出GPA值,再排序。
代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
float a[100001];
int main()
{
freopen("sort.in","r",stdin);
freopen("sort.out","w",stdout);
int n,m;
float x,y;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>x>>y;
a[i]=x/y;
}
sort(a+1,a+n+1);
printf("%.2f",a[n-m+1]);
return 0;
}