考点:数学问题
利用map容器
#include<bits/stdc++.h>
using namespace std;
const int MAXSIZE=1001;
int main() {
int n,m;
while(cin>>n) {
map<int,int> ma;
int a,b;
for(int i=0; i<n; i++) {
cin>>a>>b;
ma[b]=a;
}
cin>>m;
for(int i=0; i<m; i++) {
cin>>a>>b;
ma[b]+=a;
}
vector<int> v[2];
for(auto it=ma.rbegin(); it!=ma.rend(); it++) {
if(it==ma.rbegin()) {
if(it->second!=0){
v[0].push_back(it->second);
v[1].push_back(it->first);
}
} else {
if(it->second!=0){
v[0].push_back(it->second);
v[1].push_back(it->first);
}
}
}
for(int i=0;i<v[0].size();i++){
if(i!=v[0].size()-1){
cout<<v[0][i]<<" "<<v[1][i]<<" ";
}else{
cout<<v[0][i]<<" "<<v[1][i]<<endl;
}
}
}
return 0;
}