题目:
https://pintia.cn/problem-sets/994805342720868352/problems/994805509540921344
我的代码:
#include<iostream>
#include<map>
#include<iomanip>
using namespace std;
int main()
{
map<int,double>poly1;
map<int,double>poly2;
int k1,k2,e1,e2;
double c1,c2;
cin>>k1;
for(int i=0;i<k1;i++)
{
cin>>e1>>c1;
poly1.insert(make_pair(e1,c1));
}
cin>>k2;
for(int i=0;i<k2;i++)
{
cin>>e2>>c2;
poly2.insert(make_pair(e2,c2));
}
map<int,double>result;
int E;
double C;
map<int,double>::reverse_iterator iter1;
map<int,double>::reverse_iterator iter2;
for(iter1=poly1.rbegin();iter1!=poly1.rend();iter1++)
{
for(iter2=poly2.rbegin();iter2!=poly2.rend();iter2++)
{
E=iter1->first+iter2->first;
C=iter1->second*iter2->second;
if(C!=0&&result.find(E)==result.end())
{
result.insert(make_pair(E,C));
}
else if(C!=0&&result.find(E)!=result.end())
{
map<int,double>::iterator iterTemp;
iterTemp=result.find(E);
iterTemp->second+=C;
}
}
}
map<int,double>::reverse_iterator iter;
cout<<result.size();
for(iter=result.rbegin();iter!=result.rend();iter++)
{
cout<<" "<<iter->first<<" "<<fixed<<setprecision(1)<<iter->second;
}
return 0;
}