1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <iostream> #include <stdio.h> #include <map> using namespace std; int main() { map<int, double> poly; for(int poly_i = 0; poly_i < 2; poly_i++) { int N; cin >> N;
for(int i = 0; i < N; i++) { int Ni; double aN; cin>> Ni >> aN; if(poly.find(Ni) != poly.end()) { poly[Ni] += aN; } else { poly[Ni] = aN; } if(poly[Ni] == 0) { poly.erase(Ni); }
} } cout<< poly.size(); map<int, double>::reverse_iterator rit; for(rit = poly.rbegin(); rit != poly.rend(); rit++) { printf(" %d %.1f", rit->first, rit->second); } return 0; }
|