[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
