#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
float num[2001] = { 0 };
int cnt = 0;
int main(){
vector<int> exp1;
vector<float> coef1;
int k; cin >> k;
// exp1.resize(k); 加上这两句答案会错误,为何?
// coef1.resize(k);
int len1 = k;
for (int i = 0; i < k; i++){
int exp; float coef;
cin >> exp >> coef;
exp1.push_back(exp);
coef1.push_back(coef);
}
cin >> k;
for (int i = 0; i < k; i++){
int exp; float coef;
cin >> exp >> coef;
for (int j = 0; j < len1; j++){
num[exp + exp1[j]] += coef* coef1[j];//核心就是这一句
}
}
for (int i = 0; i < 2001; i++){
if (num[i] != 0)
cnt++;
}
cout << cnt;
for (int i = 2000; i >= 0; i--){
if (num[i] != 0){
cout << " " << i;
printf(" %.1f", num[i]);
}
}
}
PAT 1009. Product of Polynomials (25)
最新推荐文章于 2021-09-26 23:48:56 发布