1009 Product of Polynomials (25 point(s))
指数相加,对应系数相乘,累加一下
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <queue>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
const int maxn = 2e3+10;
const int inf_int = 1e9;
int N;
double eps = 1e-7;
double a[maxn],b[maxn],c[maxn];
int main(){
cin>>N;
for(int i = 1;i<=N;i++) {
int id;double v;scanf("%d %lf",&id,&v);
a[id] = v;
}
cin>>N;
for(int i = 1;i<=N;i++){
int id;double v;scanf("%d %lf",&id,&v);
b[id] = v;
}
for(int i = 0;i<=1000;i++){
for(int j = 0;j<=1000;j++){
c[i + j] += a[i] * b[j];
}
}
int cnt = 0;
for(int i = 0;i<=2000;i++) if(abs(c[i]) > eps) cnt++;
cout<<cnt;
for(int i = 2000;i>=0;i--) if(abs(c[i]) > eps) printf(" %d %.1f",i,c[i]);
return 0;
}