【问题描述】
为了用事实说明挖掘机技术到底哪家强,组织一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
【输入形式】
输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号、及其比赛成绩(百分制),中间以空格分隔。
【输出形式】
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
【样例输入】
6
3 65
2 80
1 100
2 70
3 40
3 0
【样例输出】
2 150
【问题说明】
建议练习使用STL中的map
(虽然我不知道这个题为什么要用map,map的排序不是对key的吗,跟value又没啥关系,这样用起来跟结构体不差不多嘛……有点懵……但是既然要求了,就用呗)
#include <iostream>
#include <map>
using namespace std;
int main()
{
int n,num,score;
cin>>n;
map<int,int> maps;
while(n--)
{
cin>>num>>score;
maps[num] += score;
}
int max_score = 0;//记得赋初值哦
int id = 0;
for(int i = 1;i <= maps.size();i++)
{
if(maps[i]>max_score)
{
max_score = maps[i];
id = i;//记录最大分数对应的编号
}
}
cout<<id<<' '<<max_score<<endl;
return 0;
}