1739 GPA排序 个人博客:doubleq.win

本文介绍了一道名为1739GPA排序的编程题,该题要求根据给定的学生GPT(GPA乘以学分数)和学分数计算出排名为K的学生的GPA。通过读取输入并计算每个学生的GPA,然后进行排序来找到答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客: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 }

 

转载于:https://www.cnblogs.com/zwfymqz/p/6594039.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值