首页 > 代码库 > 1739 GPA排序 个人博客:doubleq.win
1739 GPA排序 个人博客:doubleq.win
个人博客: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 }
1739 GPA排序 个人博客:doubleq.win
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。