解法一:模拟

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. class Student {
  4. public:
  5. string name;
  6. char gender;
  7. string id;
  8. int grade;
  9. };
  10. vector<Student> students;
  11. int main() {
  12. ios::sync_with_stdio(false);
  13. cin.tie(0);
  14. int N;
  15. cin >> N;
  16. int maleIndex = -1;
  17. int femaleIndex = -1;
  18. for (int i = 0; i < N; ++i) {
  19. Student student;
  20. cin >> student.name >> student.gender >> student.id >> student.grade;
  21. students.emplace_back(student);
  22. if (student.gender == 'M' && (maleIndex == -1 || student.grade < students[maleIndex].grade)) {
  23. maleIndex = i;
  24. }
  25. if (student.gender == 'F' && (femaleIndex == -1 || student.grade > students[femaleIndex].grade)) {
  26. femaleIndex = i;
  27. }
  28. }
  29. Student male, female;
  30. if (femaleIndex != -1) {
  31. female = students[femaleIndex];
  32. cout << female.name << " " << female.id << '\n';
  33. } else {
  34. cout << "Absent\n";
  35. }
  36. if (maleIndex != -1) {
  37. male = students[maleIndex];
  38. cout << male.name << " " << male.id << '\n';
  39. } else {
  40. cout << "Absent\n";
  41. }
  42. if (maleIndex != -1 && femaleIndex != -1) {
  43. cout << female.grade - male.grade << '\n';
  44. } else {
  45. cout << "NA\n";
  46. }
  47. }