【题目描述】
输入n位同学的姓名和成绩,请输出前三名的信息
【输入格式】
第一行一个正整数n,表示学生人数
接下来n行,每行一个正整数score和一个字符串name,分别表示成绩和姓名
【输出格式】
3行,每行每行一个正整数score和一个字符串name,分别表示成绩和姓名
要求按照成绩从大到小的顺序输出,若成绩相同,则按照输入顺序从小到大输出
【数据范围】
对于100%的数据:3<=n<=1000,1<=score<=100,1<=|name|<=100;其中|name|表示姓名的长度
#include<bits/stdc++.h>
using namespace std;
struct stu{
int score;
string name;
}s[1001];
bool cmp(stu a,stu b){
return a.score>b.score;
}
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
cin >> s[i].score;
cin >> s[i].name;
}
sort(s+1,s+1+n,cmp);
for(int i=1;i<=3;i++){
cout << s[i].score << " ";
cout << s[i].name << endl;
}
return 0;
}
某些数据:
1
2