现在有一份名单,希望从名单中筛选出可以参加程设竞赛的学生。评判标准是,如果一名学生的成绩大于等于 90 分,就能够入选。如果没达到 90 分,就只能做吃瓜观众一名。
输入要求:若干组数据,每组数据包括学生姓名(长度 l≤20 且只包含小写字母)和成绩(int 范围内)
输出要求:先输出一个值 m,为可以参加竞赛的总人数,然后按照成绩从大到小输出
筛选出的学生名字和成绩(如果成绩相同,则按名字的字典序输出)。
输入样例 1
spylent 67
sans 98
toriel 95
papyrus 95
chara 97
flowey 91
#include <iostream>
#include <algorithm>
using namespace std;
struct stu{
string name;
int score;
};
bool cmp(stu a, stu b){
if(a.score == b.score)
return a.name < b.name;
return a.score > b.score;
}
int main()
{
stu s[5005];
int m, i = 0;
cin >> m;
while(m--)
{
string name;
int sc;
cin >> name >> sc;
if(sc >= 90)
{
s[i] = {name, sc};
++i;
}
}
sort(s,s + i,cmp);
for(int k = 0; k < i; ++k)
cout << s[k].name << ' ' << s[k].score << endl;
return 0;
}