题目链接

注意

指数有可能为负数!

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,x,y; 
    while(cin>>n){
        int M=-1;
        unordered_map<int,int> mp;
        for(int i=0;i<n;i++){
            cin>>x>>y;
            mp[y]=x;
            if(y>M) M=y;
        }
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>x>>y;
            mp[y]+=x;
            if(y>M) M=y;
        }
        int flag=0;
        for(int i=M;i>=-1001;i--){
            if(mp[i]!=0){
                if(flag==0) cout<<mp[i]<<" "<<i;
                else cout<<" "<<mp[i]<<" "<<i;
                flag++;
            }
        }
        cout<<endl;
    }
    return 0;
}