简单输入输出,没有复杂操作。
测试点1,2都含有缺失数据,要输出Absent和NA
#include<iostream>
#include<string>
#include<map>
#include<math.h>
using namespace std;
struct Node {
string name, gender, id;
};
map<int, Node>M1, M2;
int main() {
int N, grade;
string name, gender, id;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> name >> gender >> id >> grade;
if (gender == "M")M1[grade] = { name,gender,id };
else M2[grade] = { name,gender,id };
}
if (M2.size() != 0)printf("%s %s\n", M2.rbegin()->second.name.c_str(), M2.rbegin()->second.id.c_str());
else printf("Absent\n");
if (M1.size() != 0)printf("%s %s\n", M1.begin()->second.name.c_str(), M1.begin()->second.id.c_str());
else printf("Absent\n");
if (M1.size() == 0 || M2.size() == 0)printf("NA");
else printf("%d", abs(M1.begin()->first - M2.rbegin()->first));
return 0;
}