以分数为核心的事件模拟
#include<iostream>
#include<vector>
typedef struct Student
{
char name[20];
char gender;
char id[20];
int g;
}Student;
bool ValidGrade(int g)
{
if(g >= 0 && g <= 100)
return true;
else return false;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
Student fmale, male;
fmale.g=-1;//get highest
male.g=101;//get lowest
//input
Student tmp;
while(n--)
{
scanf("%s %c %s %d", tmp.name, &tmp.gender, tmp.id, &tmp.g);
if(tmp.gender == 'F' && tmp.g > fmale.g)
fmale = tmp;
else if(tmp.gender == 'M' && tmp.g < male.g)
male = tmp;
}
//output
if( ValidGrade(fmale.g) )
printf("%s %s\n",fmale.name, fmale.id);
else printf("Absent\n");
if( ValidGrade(male.g) )
printf("%s %s\n",male.name, male.id);
else printf("Absent\n");
if( ValidGrade(fmale.g) && ValidGrade(male.g) )
printf("%d\n", fmale.g-male.g);
else printf("NA\n");
}
return 0;
}