用set和map配合实现

#include<iostream>
#include<set>
#include<map>
using namespace std;

int main(){
    int N;
    cin >> N;
    set<int> key;
    map<int,int> num;
    while(N--){
        int k, v;
        cin >> k >> v;
        set<int>::iterator it = key.insert(k).first;
        if(key.insert(k).second)
            num[*it] = v;
        else
            num[*it] += v;
    }
    for(set<int>::iterator it = key.begin(); it != key.end(); ++it){
        cout << *it << ' ' << num[*it] << endl;
    }
}