谁考了第k名

2023-12-24 16:33:45

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;
}

文章来源:https://blog.csdn.net/qq_73062949/article/details/135182898
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。