PAT1009. Product of Polynomials

#include<iostream>
#include<vector>
using namespace std;
const int N=1000;
double mul[N*N+1];
struct node{int exp;double coe;node(int a,double b):exp(a),coe(b){}};
vector<node>x,y;
 
int main(){
  int n,a;double b;
  cin>>n;
  while(n--){
    cin>>a>>b;
    x.emplace_back(a,b);}
  cin>>n;
  while(n--){
    cin>>a>>b;
    y.emplace_back(a,b);}
  for(auto &_x:x)
    for(auto &_y:y)
      mul[_x.exp+_y.exp]+=_x.coe*_y.coe;
  for(int i=0,total=0;i<=N*N;++i){
    if(mul[i]) ++total;
    if(i==N*N)cout<<total;}
  for(int i=N*N;i>=0;--i)
    if(mul[i])
      printf(" %d %.1lf",i,mul[i]);
  return 0;
}

你可能感兴趣的:(PAT1009. Product of Polynomials)