CF 2A-Winner

CF 2A-Winner  点击打开链接

题意:计算每个人的得分,并输出先达到最大得分的人的名字。

思路:这题用string 和map来做会方便得多,直接输入名字就可以查询分数。输入姓名,分数,然后将分数加到对应的人身上即可,(要求最先达到最大值的人,故需要先求出最大值,再通过循环来找出最先达到的人)

#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string,int> man , b;
string name[1005];
int score[1005];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>name[i]>>score[i];
        man[name[i]]+=score[i];
    }
    int Max=-1;
    for(int i=0;i<n;i++){
        if(man[name[i]]>Max)
            Max=man[name[i]];
    }
    for(int i=0;i<n;i++){
        b[name[i]]+=score[i];
        if(b[name[i]]>=Max&&man[name[i]]>=Max){
            cout<<name[i]<<endl;
            break;
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/Levi-0514/p/9042501.html