Sample Input:
4 1 2 4 -1 4 7 6 -2 -3Sample Output:
43
#include <iostream> #include <string.h> #include <vector> #include <algorithm> #include <functional> using namespace std; int main() { int total = 0; int NC,NP; vector<int> VC1,VC2; cin>>NC; for (int i = 0; i < NC; i++) { int x; cin>>x; if (x > 0) { VC1.push_back(x); } else { VC2.push_back(x); } } sort(VC1.begin(),VC1.end(),greater<int>()); sort(VC2.begin(),VC2.end(),less<int>()); vector<int> VP1,VP2; cin>>NP; for (int i = 0; i < NP; i++) { int x; cin>>x; if (x > 0) { VP1.push_back(x); } else { VP2.push_back(x); } } sort(VP1.begin(),VP1.end(),greater<int>()); sort(VP2.begin(),VP2.end(),less<int>()); int N1 = min(VC1.size(),VP1.size()); for (int i = 0; i < N1; i++) { total += VC1[i]*VP1[i]; } int N2 = min(VC2.size(),VP2.size()); for (int i = 0; i < N2; i++) { total += VC2[i]*VP2[i]; } printf("%d",total); return 0; }