[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