题目
![]()
解法1
点击查看代码
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
struct Person{
string name;
char gender;
string id;
int grade;
};
struct cmp1{
bool operator () (const Person& p1, const Person& p2){
return p1.grade < p2.grade;
}
};
struct cmp2{
bool operator () (const Person& p1, const Person& p2){
return p1.grade > p2.grade;
}
};
int main(){
int n; scanf("%d",&n);
vector<Person> boys;
vector<Person> girls;
priority_queue<Person,vector<Person>,cmp1> pq1;
priority_queue<Person,vector<Person>,cmp2> pq2;
while(n--){
Person p;
cin>>p.name>>p.gender>>p.id>>p.grade;
if(p.gender == 'F'){
pq1.push(p);
}else{
pq2.push(p);
}
}
if(pq1.empty()){
cout<<"Absent"<<endl;
}else{
cout<<pq1.top().name<<" "<<pq1.top().id<<endl;
}
if(pq2.empty()){
cout<<"Absent"<<endl;
}else{
cout<<pq2.top().name<<" "<<pq2.top().id<<endl;
}
if(pq2.empty() || pq1.empty()){
cout<<"NA";
}else{
cout<<pq1.top().grade-pq2.top().grade;
}
return 0;
}