有点坑,最后一个例子一直错,好久才发现cmp函数没写好,原理成绩相等的情况要字符串比较
#include <iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
bool cmp(const pair<string, vector<int>>& a, const pair<string, vector<int>>& b) {
if (a.second[3] == b.second[3])
return a.first < b.first;
return a.second[3] > b.second[3];
}
int main(void)
{
map<string, vector<int>> stus;
int P, M, N;
string stuid;
cin >> P >> M >> N;
for (int i = 0; i < P; ++i)
{
int GP;
cin >> stuid>>GP;
vector<int> scores(4, -1);
scores[0] = GP;
stus[stuid] = scores;
}
for (int i = 0; i &l