#include <iostream> #include <unordered_map> #include <algorithm> #include <vector> using namespace std; bool cmp(vector<int>&a, vector<int>&b) { return a[0]<b[0]; } int main() { int n; unordered_map<int, int> dat; cin>>n; for(int i=0; i<n; ++i) { int k,v; cin>>k>>v; dat[k] +=v; } int m = dat.size(); vector<vector<int>> ans(m, vector<int>(2)); int ind = 0; // for(auto& kv:dat) // { // // cout<<kv.first<<" "<<kv.second<<endl; // ans[ind][0]=kv.first; // ans[ind][1]=kv.second; // ind++; // } // 两种遍历哈希map的方式 记住 for(auto [k, v]:dat) { // cout<<k<<" "<<v<<endl; ans[ind][0]=k; ans[ind][1]=v; ind++; } //排序 sort(ans.begin(), ans.end(), cmp); // 输出 for(int i=0; i<m; ++i) { cout<<ans[i][0]<<" "<<ans[i][1]<<endl; } } // 64 位输出请用 printf("%lld")