43
#include <iostream> #include <algorithm> #include <vector> using namespace std; vector<int> nc_p; vector<int> nc_n; vector<int> np_p; vector<int> np_n; bool cmp1(int a, int b) { return a > b; } bool cmp2(int a, int b) { return a < b; } int main() { int nc, np, i, tmp; while(cin>>nc) { for(i=0; i<nc; i++) { cin>>tmp; if(tmp >= 0) { nc_p.push_back(tmp); } else { nc_n.push_back(tmp); } } cin>>np; for(i=0; i<np; i++) { cin>>tmp; if(tmp >= 0) { np_p.push_back(tmp); } else { np_n.push_back(tmp); } } sort(nc_p.begin(), nc_p.end(), cmp1); sort(nc_n.begin(), nc_n.end(), cmp2); sort(np_p.begin(), np_p.end(), cmp1); sort(np_n.begin(), np_n.end(), cmp2); int sum = 0; for(i=0; i<nc_p.size() && i<np_p.size(); i++) { sum += nc_p[i] * np_p[i]; } for(i=0; i<nc_n.size() && i<np_n.size(); i++) { sum += nc_n[i] * np_n[i]; } cout<<sum<<endl; nc_p.clear(); nc_n.clear(); np_p.clear(); np_n.clear(); } return 0; }
原文地址:http://blog.csdn.net/jason_wang1989/article/details/45612701