#include<iostream> #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<algorithm> #include<map> #include<vector> #include<queue> using namespace std; struct Poly{ int exp; //指数 double cof;//系数 }poly[1001]; //第一个多项式 double ans[2001]; int main(){ int n,m,number=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d %lf",&poly[i].exp,&poly[i].cof); } scanf("%d",&m); for(int i=0;i<m;i++){ int exp; double cof; scanf("%d %lf",&exp,&cof); for(int j=0;j<n;j++){ //与第一个多项式中的每一项相乘 ans[exp+poly[j].exp]+=(cof*poly[j].cof); //核心步骤!!!!!!! } } for(int i=0;i<=2000;i++){ if(ans[i]!=0.0) number++; //统计非零系数的项数 } printf("%d",number); for(int i=2000;i>=0;i--){ if(ans[i]!=0.0){ printf(" %d %.1f",i,ans[i]); } } system("pause"); return 0; }