PAT甲级——1036 Boys vs Girls——分数 25

题目


解法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;
}

posted on 2025-04-07 09:23  LEESOL-cn  阅读(5)  评论(0)    收藏  举报

导航