题目
就是按照不同类型进行排序划分就行,没啥好说的,水题
#include<cstdio>
#include<algorithm>
#include<vector>
#include<string>
#include<iostream>
using namespace std;
struct student {
string name, id;
char sex;
int score;
student(string _name, char _sex, string _id, int _score) : name(_name), sex(_sex), id(_id), score(_score) {}
};
vector<student> m;
vector<student> f;
bool cmpm(student a, student b) {
return a.score < b.score;
}
bool cmpf(student a, student b) {
return a.score > b.score;
}
int main() {
int n;
string id, name;
char s;
int sc;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
cin >> name;
getchar();
scanf("%c", &s);
getchar();
cin >> id;
getchar();
scanf("%d", &sc);
getchar();
if (s == 'M') {
m.push_back(student(name, s, id, sc));
}
else {
f.push_back(student(name, s, id, sc));
}
}
sort(m.begin(), m.end(), cmpm);
sort(f.begin(), f.end(), cmpf);
if (f.size() == 0 || m.size() == 0) {
if (f.size() == 0) {
printf("Absent\n");
}
else {
cout << f[0].name << " " << f[0].id << endl;
}
if (m.size() == 0) {
printf("Absent\n");
}
else {
cout << m[0].name << " " << m[0].id << endl;
}
printf("NA");
}
else {
cout << f[0].name << " " << f[0].id << endl;
cout << m[0].name << " " << m[0].id << endl;
int k = f[0].score - m[0].score;
cout << k;
}
}