B4195 题解

· · 题解

题目传送门

思路

用一个 map 类型结构 MM_S 代表名字为 S 的人的分数。每次输入的 SX,执行加分操作 M_S\gets M_S+X,并判断更新后的 M_S 是否大于原先的最大值。若大于,更新答案字符串和最大值。

AC CODE

#include<bits/stdc++.h>
using namespace std;
unordered_map<string,int>mp;//等同于 map
int main(){
    int n;cin>>n;
    string fs;int fnum;
    cin>>fs>>fnum;
    mp[fs]=fnum;
    string ans=fs;
    int maxx=fnum;
    while(--n){
        string s;int num;
        cin>>s>>num;
        mp[s]+=num;
        if(mp[s]>maxx)
            ans=s,maxx=mp[s];
    }
    cout<<ans<<"\n";
    return 0;
}