题目描述
blablabla
样例
时间复杂度
$O(n)$
C++ 代码
#include <iostream>
#include <cstring>
using namespace std;
struct stu{
string name,id;
char sex;
int score;
}stu[103];
int main()
{
int n=0;
scanf("%d",&n);
int girl_max=-1,boy_min=120;//注意赋值一定严格不在成绩取值范围内
int have_girl=0,have_boy=0;//相当于flag
string no="Absent";
string no1="NA";
for (int i = 1; i <=n; i ++ ){//注意i从1开始,万一have_girl/boy=i下标刚好为0
cin>>stu[i].name>>stu[i].sex>>stu[i].id>>stu[i].score;
if(stu[i].sex=='F'&&stu[i].score>girl_max) girl_max=stu[i].score,have_girl=i;
if(stu[i].sex=='M'&&stu[i].score<boy_min) boy_min=stu[i].score,have_boy=i;
}
if(!have_girl) {//如果没女孩
cout<<no<<endl;
cout<<stu[have_boy].name<<' '<<stu[have_boy].id<<endl;
cout<<no1<<endl;
}
else {//有女孩
cout<<stu[have_girl].name<<' '<<stu[have_girl].id<<endl;
if(!have_boy){//有女无男
cout<<no<<endl;
cout<<no1<<endl;
}
else {//有女有男
cout<<stu[have_boy].name<<' '<<stu[have_boy].id<<endl;
cout<<girl_max-boy_min<<endl;
}
}
return 0;
}