#include<cstdio>
int main()
{
int n,count=0,k;//n用来记录每个式子的项数,count是结果的总项数,k是指数
double a[1010]={0},e;//数组的a[k]是指数为k的项的系数,e用于临时记录的系数
scanf("%d",&n);
count+=n;
while(n--){//处理A式的各项
scanf("%d%lf",&k,&e);
a[k]=e;
}
scanf("%d",&n);
count+=n;
while(n--){//处理B式的各项
scanf("%d%lf",&k,&e);
if(a[k]!=0) {count--;//A出现过的项,总项数要减1
a[k]+=e;
if(a[k]==0) count--;}//加上新系数之后系数为零,总项数减1
else a[k]=e;//A中未出现的项
}
if(count)
printf("%d ",count);
else {printf("0");return 0;}//总项数为零
for(int i=1000;i>=0;i--){//按指数递减来输出所有项
if(a[i]!=0){
printf("%d %.1lf",i,a[i]);
count--;
if(count!=0) printf(" ");//通过剩余项数判断是否为最后一项,如果不是最后一项要加空格
else break;
}
}
return 0;
}
PAT A1002 A+B for Polynomials
最新推荐文章于 2020-08-29 15:51:16 发布