题目链接
题目分析
(略)
解题思路
(略)
AC程序(C++)
/**********************************
*@ID: 3stone
*@ACM: PAT.A1036 Boys vs Girls
*@Time: 18/9/20
*@IDE: VScode 2018 + clang++
***********************************/
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 10010;
int N;
struct student {
char name[11];
char ID[11];
char gender;
int grade;
}stu[maxn];
bool cmp(student s1, student s2) {
if(s1.gender != s2.gender) {
if(s1.gender == 'F') return true;
else return false;
} else
return s1.grade > s2.grade;
}
int main() {
while(scanf("%d", &N) != EOF) {
//input info of stu
for(int i = 0; i < N; i++) {
scanf("%s %c %s %d", stu[i].name, &stu[i].gender, stu[i].ID, &stu[i].grade);
}
sort(stu, stu + N, cmp);
if(stu[0].gender == 'F') printf("%s %s\n", stu[0].name, stu[0].ID);
else printf("Absent\n");
if(stu[N - 1].gender == 'M') printf("%s %s\n", stu[N - 1].name, stu[N - 1].ID);
else printf("Absent\n");
if(stu[0].gender == 'F' && stu[N - 1].gender == 'M')
printf("%d\n", stu[0].grade - stu[N - 1].grade);
else
printf("NA\n");
}
return 0;
}