Tips:
- 本题与1002类似,只不过此题是求乘积,但和1002注意的地方一样.
- 还需注意的是,本题开辟的数组空间大小应为2001.
#include <iostream>
using namespace std;
#define LEN 2001
int main() {
int k1,k2,i,j,count;
int *pCoe;
double *pIndex;
int coe;
double index;
double *result = new double[LEN];
for(i = 0;i <LEN;i ++)
result[i] = 0;
while(scanf("%d",&k1) != EOF) {
count = 0;
pCoe = new int[k1];
pIndex = new double[k1];
for(i = 0;i < k1;i ++)
scanf("%d %lf",&pCoe[i],&pIndex[i]);
scanf("%d",&k2);
for(i = 0;i < k2;i ++){
scanf("%d %lf",&coe,&index);
for(j = 0;j < k1;j ++){
if(result[coe + pCoe[j]] == 0)
count ++;
result[coe + pCoe[j]] += index * pIndex[j];
if(result[coe + pCoe[j]] == 0)
count --;
}
}
printf("%d",count);
for(i = LEN - 1;i >= 0;i --){
if(result[i] != 0){
printf(" %d %.1lf",i,result[i]);
result[i] = 0;
}
}
printf("\n");
}
return 0;
}