根据ID统计分数求最高分-E

来源:互联网 发布:关闭百度搜索合作网络 编辑:程序博客网 时间:2024/05/16 12:12
现请你根据比赛结果统计出技术最强的那个学校。
输入描述:
输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。

输出描述:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。

输入例子:
63 652 801 1002 703 403 0
输出例子:
2 150
#include<iostream>#include<map>using namespace std;int arr[100000+1]={0};void solve_1(){    int n;    cin>>n;    for(int i=0;i<n;i++){        int shoolNo;        int score;        cin>>shoolNo>>score;        arr[shoolNo]+=score;    }    int maxIndex=0;    int maxValue=0;    for(int i=0;i<n;i++){        if(maxValue<arr[i]){            maxValue=arr[i];            maxIndex=i;        }    }    cout<<maxIndex<<" "<<maxValue<<endl;    return;}void solve_2(){    int n;    map<int,int> map_count;    cin>>n;    map<int,int>::iterator  p;    for(int i=0;i<n;i++){        int schoolNo;        int score;        cin>>schoolNo>>score;        p = map_count.find(schoolNo);        if(p==map_count.end())            map_count[schoolNo]=score;        else            map_count[schoolNo]+=score;    }    int maxIndex=0;    int maxValue=0;    p = map_count.begin();    while(p!=map_count.end()){        if(p->second>maxValue){            maxValue=p->second;            maxIndex=p->first;        }        p++;    }    cout<<maxIndex<<" "<<maxValue<<endl;}int main(){    //solve_1();    solve_2();    return 0;}



0 0
原创粉丝点击