CODE[VS] 1739 GPA排序

题目描述 Description

纳米猿和mmm是好朋友。Mmm的成绩很差,以至于GPA(平均绩点)在年级内倒数。年级内一共有N位同学,每位同学有自己的GPA,以及已修学分数,定义GPT=GPA×已修学分数。纳米猿为了帮助mmm提高成绩,给mmm提了一个要求:新学期的GPA要超过级内排名第K位同学。

为了帮助理解,这里给出一个例子:

现在给出年级里面每位同学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

比较简单的题,注意看好题目。

ac代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 
 8 int n,k;
 9 
10 struct node{
11     int a;
12     double gpa,gpt;
13 }sore[100002];
14 
15 bool cmp(node x,node y)
16 {
17     return x.gpa  >y.gpa  ;
18 }
19 
20 int main()
21 {
22     scanf("%d%d",&n,&k);
23     for(int i=1;i<=n;++i)
24     {
25         scanf("%lf%d",&sore[i].gpt ,&sore[i].a );
26         sore[i].gpa =sore[i].gpt*1.0/sore[i].a;
27     }    
28     sort(sore+1,sore+n+1,cmp);
29     printf("%.2lf",sore[k].gpa);
30     return 0;
31 }

如果你不开心,那我就把右边这个帅傻子分享给你吧,
你看,他这么好看,跟个zz一样看着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。
时间时间会给你答案2333
原文地址:https://www.cnblogs.com/Mary-Sue/p/9190966.html