嗯,经过老湿的建议,我还是乖乖去刷NOIOJ了..

01:谁考了第k名

http://noi.openjudge.cn/ch0110/01/

总时间限制:
1000ms
内存限制:
65536kB
描述
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第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

看起来水爆了好么..不过不懂结构体排序就是了,恶补之。
10分钟代码打出来了:

#include<cstdio>
#include<algorithm>
using namespace std;
struct stu{
int num;
float score;
}s[105];
bool cmp(stu a,stu b){
return a.score>b.score;
}
int main(){
int n,x;
scanf("%d%d",&n,&x);
for (int i=0;i<n;i++){
int k;
float b;
scanf("%d%f",&k,&b);
s[i].num=k;
s[i].score=b;
}
sort(s,s+n,cmp);
printf("%d %g",s[x-1].num,s[x-1].score);
return 0;
}

二话不说,上评测:

QQ图片20160218212008

...吔屎啦