//相对于书本的改进是设置了maxe,这样下一次不需要全部遍历
#include<stdio.h>
float A[1010];
int main(){
//一开始我的想法是开两个数组,分别存放输入,然后再比较,这种想法一点也不巧妙,太蠢了
//开1000的数组,输入的时候直接对应指数做下标输入对应的系数值
int m,n,e;//输入次数
float s=0.0;
A[1010]={0.0};
scanf("%d",&m);
while(m--){
scanf("%d%f",&e,&s);
A[e]+=s;
}
scanf("%d",&n);//b
while(n--){
scanf("%d%f",&e,&s);
A[e]+=s;
}
int maxe=0;
int count=0;
for(int i=0;i<=1000;i++){
if(A[i]!=0.0){
count++;
maxe=i;//这样可以减少一些遍历
}
}
printf("%d",count);
for(int i=maxe;i>=0;i--){
if(A[i]!=0.0){
printf(" %d %.1f",i,A[i]);
}
}
return 0;
}
#include<stdio.h>
float A[1010];
int main(){
//一开始我的想法是开两个数组,分别存放输入,然后再比较,这种想法一点也不巧妙,太蠢了
//开1000的数组,输入的时候直接对应指数做下标输入对应的系数值
int m,n,e;//输入次数
float s=0.0;
A[1010]={0.0};
scanf("%d",&m);
while(m--){
scanf("%d%f",&e,&s);
A[e]+=s;
}
scanf("%d",&n);//b
while(n--){
scanf("%d%f",&e,&s);
A[e]+=s;
}
int maxe=0;
int count=0;
for(int i=0;i<=1000;i++){
if(A[i]!=0.0){
count++;
maxe=i;//这样可以减少一些遍历
}
}
printf("%d",count);
for(int i=maxe;i>=0;i--){
if(A[i]!=0.0){
printf(" %d %.1f",i,A[i]);
}
}
return 0;
}