没难度上代码。
#include <bits/stdc++.h>
using namespace std;
vector<int> v1, v2;
int main() {
int n, sum = 0;
scanf ("%d", &n);
v1.resize(n);
for (int i = 0; i < n; i++) scanf ("%d", &v1[i]);
scanf ("%d", &n);
v2.resize(n);
for (int i = 0; i < n; i++) scanf ("%d", &v2[i]);
sort (v1.begin(), v1.end());
sort (v2.begin(), v2.end());
for (int i = v1.size() - 1, j = n - 1; i >= 0 && j >= 0; i--, j--) {
if (v1[i] > 0 && v2[j] > 0) {
sum += v1[i] * v2[j];
}
else break;
}
for (int i = 0, j = 0; i < v1.size() && j < n; i++, j++) {
if (v1[i] < 0 && v2[j] < 0) {
sum += v1[i] * v2[j];
}
else break;
}
cout << sum;
}