算法笔记上能踩的坑都踩了。


#include<iostream>
using namespace std;
float a[1001];//至少1000个位置
int main(){
int n,cnt=0,aa;
float bb;
cin>>n;
for(int i=0;i<n;i++){
cin>>aa>>bb;
if(a[aa]==0)cnt++;
a[aa]+=bb;
}
cin>>n;
for(int i=0;i<n;i++){
cin>>aa>>bb;
if(a[aa]==0)cnt++;
a[aa]+=bb;
if(a[aa]==0)cnt--;//考虑会不会被抵消
}
cout<<cnt;//这里少输出一个“ ”
for(int i=1000;i>=0;i--){
if(a[i]!=0){
printf(" %d %.1f",i,a[i]);//这里都是 “ ”+i+a[i]不就没有格式错误了嘛,太死脑筋了
}
}
}