注意注意:输出的 每行的 最后的数字 后面也不许加空格(不然会格式错误)
代码:
#include<iostream>
#include<map>
using namespace std;
map<int,int>a,b,c;
int main(){
int n; cin>>n;
for(int i=0;i<n;i++){
int x,y; scanf("%d%d",&x,&y);
a[y]=x;
}
c=a;
int m; cin>>m;
for(int i=0;i<m;i++){
int x,y; scanf("%d%d",&x,&y);
c[y]+=x;
for(auto it=a.begin();it!=a.end();it++)
b[it->first+y]+=it->second*x;
}
//printf("%d ",b.size());
int flag=0;
for(auto it=b.rbegin();it!=b.rend();it++){
if(it->second){
if(flag==0) printf("%d %d",it->second,it->first),flag=1;
else printf(" %d %d",it->second,it->first);
}
}
if(!flag) printf("0 0");
printf("\n");
flag=0;
for(auto it=c.rbegin();it!=c.rend();it++){
if(it->second){
if(flag==0) printf("%d %d",it->second,it->first),flag=1;
else printf(" %d %d",it->second,it->first);
}
}
if(!flag) printf("0 0");
return 0;
}