#include <iostream>
#include <vector>
#include <vector>
using namespace std;
struct x{
float xiangshu;
vector<float> num;
}A[1010],B[10100],C[1010];
int main() {
//代表 项数
int K1,K2;
int MAX1 =0;
int MAX2 =0;
cin>>K1;
for(int i =0;i<K1;i++) {
int m;
float n;
cin >> m >> n;
MAX1=max(m,MAX1);
A[m].xiangshu = n;
}
cin>>K2;
for(int i =0;i<K2;i++){
int m;
float n;
cin>>m>>n;
MAX2=max(m,MAX2);
B[m].xiangshu = n;
}
//最大系数
int MAX = MAX1+MAX2;
//相乘 是遍历A 将其中每个都与所有B乘
for(int j = MAX1;j>=0;j--){
for(int i= MAX2;i>=0;i--){
float number;
number = A[j].xiangshu*B[i].xiangshu;
C[i+j].num.push_back(number);
}
}
int count =0;
for(int i = MAX;i>=0;i--){
float sum =0;
for(int j =0;j<C[i].num.size();j++){
sum = sum+C[i].num[j];
}
if(sum!=0){
count++;
}
}
cout<<count;
for(int i = MAX;i>=0;i--){
float sum =0;
for(int j =0;j<C[i].num.size();j++){
sum = sum+C[i].num[j];
}
if(sum!=0){
cout<<" "<<i<<" ";
printf("%.1f",sum);
}
}
return 0;
}
同A1002 结构体最简单且不容易出错。