7-94 谁考了第k名
分数 10
全屏浏览题目
切换布局
作者?于延
单位?哈尔滨师范大学
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。
第一行有两个整数,分别是学生的人数n(1≤n≤10000),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g格式输出成绩)
5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9
90788004 68.4
1 1
90788001 67.888
90788001 67.888
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <iostream>
#include <algorithm>
using namespace std;
struct student{
int data;
double sum;
}s[100000];
bool cmp(student x,student y){
if(x.sum!=y.sum) return x.sum>y.sum;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>s[i].data>>s[i].sum;
}
sort(s,s+n,cmp);
printf("%d %g",s[m-1].data,s[m-1].sum);
return 0;
}