解法:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define endl '\n'
struct stu {
string name;
double m;
double e;
};
bool cmp1(struct stu& a, struct stu& b) {
return a.m > b.m;
}
bool cmp2(struct stu& a, struct stu& b) {
return a.e < b.e;
}
int main() {
int n; cin >> n;
string ss;
double a, b;
vector<struct stu> ma(n), en(n);
for (int i = 0; i < n; i++) {
cin >> ss >> a >> b;
ma[i].name = ss; ma[i].m = a;
en[i].name = ss; en[i].e = b;
}
sort(ma.begin(), ma.end(), cmp1);
sort(en.begin(), en.end(), cmp2);
cout << ma[2].name << " " << en[2].name;
return 0;
}