2167: 谁考了第k名
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:18
解决:13
题目描述
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k 名学生的学号和成绩。
输入
第一行有两个整数,分别是学生的人数n (1≤n≤100),和求第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
提示
#include<bits/stdc++.h> using namespace std; struct node { int id; double score; }; node a[110]; int n,k; int cmp(node x,node y) { return x.score>y.score; } int main(){ cin>>n>>k; for (int i=1;i<=n;i++) { cin>>a[i].id>>a[i].score; } sort(a+1,a+n+1,cmp); printf("%d %g",a[k].id,a[k].score); return 0; }