跟1002很像的一个题,就是从加法改成了乘法。
#include <cstdio>
#include <vector>
#include <string>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define INF 0x3fffffff
using namespace std;
int main()
{
double a[1005],b[1005],c[2005];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int n,j;
double k;
cin>>n;
while(n--)
{
cin>>j>>k;
a[j]=k;
}
cin>>n;
while(n--)
{
cin>>j>>k;
b[j]=k;
}
for (int i=0;i<1001;i++)
for (int j=0;j<1001;j++)
c[i+j]=c[i+j]+a[i]*b[j];
int cnt=0;
vector<int> sx;
for (int i=2002;i>=0;i--)
{
if (c[i]!=0)
{
cnt++;
sx.push_back(i);
}
}
cout<<cnt;
for (int i=0;i<sx.size();i++)
{
cout<<' '<<sx[i];
printf(" %.1f",c[sx[i]]);
}
}