AcWing 1520. 男孩 vs 女孩
原题链接
简单
作者:
eveer
,
2021-08-26 19:39:41
,
所有人可见
,
阅读 161
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct student
{
string name,gender,id;
int grade;
}man[N],fem[N];
bool cmp(student x,student y)
{
return x.grade>y.grade;
}
int main()
{
int n;
scanf("%d",&n);//输入需要排序的学生数量
int cnt_m=0,cnt_f=0;
while(n--)
{
string name,id,gender;
int grade;
cin>>name>>gender>>id>>grade;
if(gender[0]=='M')
{
man[cnt_m].name=name;
man[cnt_m].gender=gender;
man[cnt_m].id=id;
man[cnt_m++].grade=grade;
}
else
{
fem[cnt_f].name=name;
fem[cnt_f].gender=gender;
fem[cnt_f].id=id;
fem[cnt_f++].grade=grade;
}
}
sort(man,man+cnt_m,cmp);
sort(fem,fem+cnt_f,cmp);
if(cnt_f==0)//表示没有女学生
{
printf("Absent\n");
}
else
cout<<fem[0].name<<' '<<fem[0].id<<endl;
if(cnt_m==0)//表示没有女学生
{
printf("Absent\n");
}
else
cout<<man[cnt_m-1].name<<' '<<man[cnt_m-1].id<<endl;
if(cnt_m==0||cnt_f==0)
printf("NA");
else
printf("%d",fem[0].grade-man[cnt_m-1].grade);
return 0;
}