想法:这道题是关于多项式的乘法,可以用1002的方法来做。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double a[1001]={0},b[1001]={0},c[2001]={0},y;
int n,m,count=0;
int x;
cin>>n;
for(int i=0; i<n; i++){
cin>>x>>y;
a[x]=y;
}
cin>>m;
for(int i=0; i<m; i++){
cin>>x>>y;
b[x]=y;
}
for(int i=0; i<1001; i++){
if(a[i]!=0){
for(int j=0; j<1001; j++){
if(b[j]!=0){
c[i+j]=c[i+j]+a[i]*b[j];
}
}
}
}
for(int i=0; i<2001; i++){
if(c[i]!=0) count++;
}
cout<<count;
for(int i=2000; i>=0; i--){
if(c[i]!=0) cout<<" "<<i<<" "<<setiosflags(ios::fixed)<<setprecision(1)<<c[i];
}
return 0;
}