挖掘机技术哪家强(20)

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入描述:
输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出描述:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
输入例子:
6
3 65
2 80
1 100
2 70
3 40
3 0
输出例子:
2 150

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;

bool compByVal(const pair<int, int>& a,const pair<int, int>& b)
{
    return a.second > b.second;
}

int main(int argc, char **argv)
{
    int N;
    cin >> N;
    map<int, int> mymap;
    while(N--)
    {
        int ID, score;
        cin >> ID >> score;
        if(mymap.find(ID) != mymap.end())
            mymap[ID] += score;
        else
            mymap.insert(pair<int, int>(ID, score));
    }
    vector< pair<int, int> > vec(mymap.begin(), mymap.end());
    sort(vec.begin(), vec.end(), compByVal);
    vector< pair<int, int> >::iterator it = vec.begin();
    cout << it->first << " " << it->second << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/lbb17745169396/article/details/80175415