1002. A+B for Polynomials (25)
注意不能输出系数为0的项
#include<bits/stdc++.h> using namespace std; int cmp(int a,int b) { return a>b; } int main() { int n,a; double b; map<int,double> m; m.clear(); vector<int> v; //freopen("1002.txt","r",stdin); for(int i=0;i<2;i++) { scanf("%d",&n); for(int j=0;j<n;j++) { scanf("%d %lf",&a,&b); //printf("%d %lf\n",a,b); if(!m.count(a)) v.push_back(a); m[a]+=b; } } sort(v.begin(),v.end(),cmp); int cnt=0; for(int i=0;i<v.size();i++) { if(m[v[i]]!=0.0) cnt++; //printf(" %d %.1f",v[i],m[v[i]]); } printf("%d",cnt); for(int i=0;i<v.size();i++) { if(m[v[i]]!=0.0) printf(" %d %.1f",v[i],m[v[i]]); } return 0; }