版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuckingone/article/details/82563069
注意:
1.答案数组开到2001,因为两个最高幂次为1000的多项式相乘,最高幂次可以达到2000。
2.没必要开两个数组,第二个多项式可以边读入边处理。
#include<cstdio>
double a[1010];
double c[2001];
int main(){
int k1,k2,n,num=0;
double an;
scanf("%d",&k1);
while(k1--){
scanf("%d %lf",&n,&an);
a[n]=an;
}
scanf("%d",&k2);
while(k2--){
scanf("%d %lf",&n,&an);
for(int i=0;i<1001;i++){
if(a[i]!=0){
c[n+i]+=an*a[i];
}
}
}
for(int i=0;i<=2000;i++){
if(c[i]!=0.0) num++;
}
printf("%d",num);
for(int i=2000;i>=0;i--){
if(c[i]!=0.0){
printf(" %d %.1f",i,c[i]);
}
}
return 0;
}