PAT 1036
1 #include <vector> 2 #include <string> 3 #include <iostream> 4 #include <fstream> 5 6 using namespace std; 7 8 #define OJ 9 10 #ifdef OJ 11 #define fin cin 12 #endif 13 14 struct Student{ 15 string name; 16 bool is_male; 17 string id; 18 int grade; 19 }; 20 21 int main(){ 22 #ifndef OJ 23 ifstream fin("in.data"); 24 #endif 25 26 int N; 27 fin >> N; 28 29 vector<Student> students; 30 for (int i = 0; i < N; i++){ 31 Student stu; 32 fin >> stu.name; 33 34 char gender; 35 fin >> gender; 36 37 stu.is_male = (gender == 'M' ? true : false); 38 39 fin >> stu.id; 40 fin >> stu.grade; 41 42 students.push_back(stu); 43 } 44 45 int male_grade = 101; 46 int femail_grade = -1; 47 int male_idx, femail_idx; 48 for (int i = 0; i < N; i++){ 49 Student &stu = students[i]; 50 if (stu.is_male){ 51 if (stu.grade < male_grade){ 52 male_grade = stu.grade; 53 male_idx = i; 54 } 55 } 56 else if (stu.grade > femail_grade){ 57 femail_grade = stu.grade; 58 femail_idx = i; 59 } 60 } 61 62 bool na = false; 63 if (femail_grade == -1){ 64 cout << "Absent" << endl; 65 na = true; 66 } 67 else { 68 cout << students[femail_idx].name << " " << students[femail_idx].id << endl; 69 } 70 if (male_grade == 101){ 71 cout << "Absent" << endl; 72 na = true; 73 } 74 else { 75 cout << students[male_idx].name << " " << students[male_idx].id << endl; 76 } 77 78 79 if (na){ 80 cout << "NA" << endl; 81 } 82 else { 83 cout << femail_grade - male_grade << endl; 84 } 85 86 return 0; 87 }
题目不难