分组排序就好。没什么好多说的。
#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;int N;struct Stu { string name; string male; string id; int grade;};vector <Stu> male;vector <Stu> femal;bool cmp(Stu s1, Stu s2) { return s1.grade > s2.grade;}int main() { cin >> N; Stu temp; for (int i = 0; i < N; i++) { cin >> temp.name >> temp.male >> temp.id >> temp.grade; if (temp.male == "M") { male.push_back(temp); } else { femal.push_back(temp); } } sort(male.begin(), male.end(), cmp); sort(femal.begin(), femal.end(), cmp); int Mnum = male.size(); int Fnum = femal.size(); bool tag = false; if (Fnum == 0) { cout << "Absent" << endl; tag = true; } else { cout << femal[0].name << " " << femal[0].id << endl; } if (Mnum == 0) { cout << "Absent" << endl; tag = true; } else { cout << male[Mnum - 1].name << " " << male[Mnum - 1].id << endl; } if (tag) cout << "NA" << endl; else { int gap = femal[0].grade - male[Mnum - 1].grade; if (gap < 0) gap = -gap; cout << gap << endl; } system("pause"); return 0; }
新闻热点
疑难解答