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