[PAT解题报告] Boys vs Girls

简单题,给一些人的性别和成绩,求男生最低分和女生最高分的成绩差。
直接循环找最大值和最小值就可以了——注意不存在的时候的输出: Absent还有NA。

#include <algorithm>
#include <cstring>
#include <string>
#include <cstdio>
using namespace std;

string name[2], id[2];
int score[2] = {1000,-1000};
char s[100],p[100];

int main() {

int n;
    for (scanf("%d",&n);n;--n) {
        scanf("%s%s",s,p);
        bool male = (p[0] == 'M');
        int x;
        scanf("%s%d",p, &x);
        if ((male) && (score[0] > x)) {
            score[0] = x;
            name[0] = s;
            id[0] = p;
        }
        else if ((!male) && (score[1] < x)) {
            score[1] = x;
            name[1] = s;
            id[1] = p;
        }
    }
    if ((score[0] <= 100) && (score[1] >= 0)) {
        printf("%s %s\n%s %s\n%d\n",name[1].c_str(), id[1].c_str(), name[0].c_str(), id[0].c_str(), score[1] - score[0]);
    }
    else {
        if (score[1] >= 0) {
                        printf("%s %s\n",name[1].c_str(), id[1].c_str());
                }
                else {
                        puts("Absent");
                }
        if (score[0] <= 100) {
            printf("%s %s\n",name[0].c_str(), id[0].c_str());
        }
        else {
            puts("Absent");
        }
        puts("NA");
    }
    return 0;
}

原题链接: http://www.patest.cn/contests/pat-a-practise/1036


全部评论

相关推荐

11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务