1036 Boys vs Girls (25分)

Posted d-i-p

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1036 Boys vs Girls (25分)相关的知识,希望对你有一定的参考价值。

1. 题目

技术图片

2. 思路

vector<node> m, vector<node> f 分别存放女性和男性,后排序比较

3. 注意点

4. 代码

#include<cstdio>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<string>

using namespace std;

struct stu{
    string name;
    string id;
    int grade;
    stu(char name[100], char id[100], int grade){
        this->name = name;
        this->id = id;
        this->grade = grade;
    }
};

bool cmpM(stu s1, stu s2){
    return s1.grade < s2.grade;
}

bool cmpF(stu s1, stu s2){
    return s1.grade > s2.grade;
}

int n;
int main(){
    char name[50], sex[2], id[50];
    int grade;
    vector<stu> m;
    vector<stu> f;
    scanf("%d", &n);
    for(int i=0;i<n;i++){
        scanf("%s %s %s %d", name, sex, id, &grade);
        if(string(sex) == "M"){
            m.push_back(stu(name, id, grade));
        }else{
            f.push_back(stu(name, id, grade));
        }
    }
    sort(f.begin(), f.end(), cmpF);
    sort(m.begin(), m.end(), cmpM);
    if(f.size() == 0){
        printf("Absent
");
        if(m.size() == 0){
            printf("Absent
");
        }else{
            printf("%s %s
", m[0].name.c_str(), m[0].id.c_str());
        }
        printf("NA
");
    }else{
        printf("%s %s
", f[0].name.c_str(), f[0].id.c_str());
        if(m.size() == 0){
            printf("Absent
");
            printf("NA
");
        }else{
            printf("%s %s
", m[0].name.c_str(), m[0].id.c_str());
            printf("%d
", f[0].grade - m[0].grade);
        }
    }
    
}

以上是关于1036 Boys vs Girls (25分)的主要内容,如果未能解决你的问题,请参考以下文章

PAT 1036 Boys vs Girls (25 分)

PAT甲级:1036 Boys vs Girls (25分)

PAT 甲级 1036 Boys vs Girls (25 分)(简单题)

1036 Boys vs Girls (25分)

1036 Boys vs Girls (25 分)难度: 简单 / 知识点: 模拟 排序

PAT 1036 Boys vs Girls[简单]