第 K 名 计蒜客 - T1318
问题描述:
刚举行的万米长跑活动中,有 N 个人跑完了全程,所用的时间都不相同。
颁奖时为了增加趣味性,随机抽了一个数 K,要奖励第 K 名一双跑鞋。
现在组委会给你 N 个人的姓名、成绩(用时,单位是秒),
请你编程快速输出第 K 名的姓名。
输入格式:
第一行:2 个整数 N 和 K。
下面 N 行:每行第 1 个是字符串表示姓名;
第 2 个是个整数,表示这个人跑完的使用时间。
输出格式: 一行,第 K 名的姓名。
数据范围: 1≤K≤N≤100。
样例输入:
5 3
lisi 2306
zhangsan 3013
wangwu 3189
suantoujun 4012
zhaoliu 2601
样例输出:
zhangsan
- 参考程序
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct T {
string name;
int s;
} stu[101];
bool cmp(T a,T b) {
return a.s < b.s;
}
int main() {
int n,k; cin>>n>>k;
for (int i=0; i<n; i++) {
cin>>stu[i].name>>stu[i].s;
}
sort(stu, stu+n, cmp);
cout<<stu[k-1].name<<endl;
return 0;
}