Задача состоит в том, чтобы создать список учеников, который будет содержать фамилию и сумму баллов за 3 экзамена (e1, e2, e3). Есть код
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
struct s
{
string name;
int balli;
};
int cmp(const void* a, const void* b)
{
return a.name < b.name;
}
int main()
{
vector<s> v;
int n = 0;
cin >> n;
v.reserve(n);
int e1, e2, e3;
string name;
for (int i = 0; i < n; i++)
{
cin >> name;
cin >> e1;
cin >> e2;
cin >> e3;
int bal = e1 + e2 + e3;
v.push_back({ name, bal });
}
qsort(v.data(), v.size(), sizeof(s), cmp);
for (vector<s>::iterator it = v.begin(); it != v.end(); it++)
{
cout << (*it).name << " " << (*it).balli << "\n";
}
return 0;
}
Надо отсортировать сначала по убыванию баллов, а затем, если у некоторых учеников баллы одинаковые, то в алфавитном порядке их фамилии. Помогите написать компоратор для этого дела или объясните, что можно написать по-другому.