这道题可以边输出边统计,稍微加速一下。
使用unordered_map查找的时间复杂是
O
(
1
)
O(1)
O(1)
而使用map需要自动调整先后顺序,因为它的底层是用红黑树实现的。
所以无需的哈希,尽量用unordered_map
注意这是C++11标准
#include <iostream>
#include <string>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
int main(){
unordered_map<int, int> mp;
int n;
cin >> n;
int id, score;
int rid, res = 0;
for(int i = 0; i < n; i++){
cin >> id >> score;
mp[id] += score;
if(mp[id] > res){
res = mp[id];
rid = id;
}
}
cout<<rid<<" "<<res<<endl;
return 0;
}