#include <bits/stdc++.h>
using namespace std;
struct Node{
string s;
int sum=0;
};
int main(){
int n;cin>>n;
unordered_map<string,int> m;
vector<Node> v;
int p=0;
while(n--){
Node t;cin>>t.s>>t.sum;
if(m[t.s]==0){
v.push_back(t);
m[t.s]=++p;
}else
v[m[t.s]-1].sum+=t.sum;
}
for(int i=0;i<p;i++)
cout<<v[i].s<<' '<<v[i].sum<<endl;
return 0;
}
按值排序:
bool cmp(Node a,Node b){
return a.sum==b.sum?a.s<b.s:a.sum>b.sum;
}