Note
Code:
#include<bits/stdc++.h>
using namespace std;
bool compare(int a,int b){
if(a<0&&b<0) return a<b;
else return a>b;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
int nc,np,c,sum=0;
vector<vector<int>> v(2);
scanf("%d",&nc);
for(int i=0;i<nc;i++){
scanf("%d",&c);
v[0].push_back(c);
}
scanf("%d",&np);
for(int i=0;i<np;i++){
scanf("%d",&c);
v[1].push_back(c);
}
sort(v[0].begin(),v[0].end(),compare);
sort(v[1].begin(),v[1].end(),compare);
int len=v[0].size()>v[1].size()?1:0;
int leni=v[len].size(),lenj=v[1-len].size();
for(int i=0,j=0;i<leni&&j<lenj;){
if((v[len][i]>=0&&v[1-len][j]>=0)||(v[len][i]<0&&v[1-len][j]<0)){
sum+=v[len][i]*v[1-len][j];
i++;
j++;
}
else if(v[len][i]>=0) i++;
else if(v[1-len][j]>=0) j++;
}
cout<<sum;
return 0;
}