Note
Code:
#include<bits/stdc++.h>
using namespace std;
struct ploy{
int exp[30];
double n[30];
int length;
};
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
double value[2010];
memset(value,0,sizeof(value));
struct ploy p[2];
int out_length=0;
for(int i=0;i<2;i++){
scanf("%d",&p[i].length);
for(int j=0;j<p[i].length;j++){
scanf("%d %lf",&p[i].exp[j],&p[i].n[j]);
}
}
int ex;
for(int i=0;i<p[0].length;i++){
for(int j=0;j<p[1].length;j++){
ex=p[0].exp[i]+p[1].exp[j];
value[ex]+=p[0].n[i]*p[1].n[j];
}
}
for(int i=0;i<2010;i++){
if(value[i]!=0) out_length++;
}
printf("%d",out_length);
for(int j=2009;j>=0;j--){
if(value[j]!=0){
printf(" %d %.1lf",j,value[j]);
}
}
return 0;
}