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;
}