读懂题目就能写
#include <cstdio>
#include <algorithm>
using namespace std;
bool cmp1(int a,int b){
return a>b;
}
bool cmp2(int a,int b){
return a<b;
}
int main(){
int n,m;
int p1[100010],p2[100010],n1[100010],n2[100010];
int t1=0,t2=0;
scanf("%d",&n);
for (int i=0;i<n;i++){
int num;
scanf("%d",&num);
if (num>0){
p1[t1++] = num;
} else if (num<0){
n1[t2++] = num;
}
}
int w1=0,w2=0;
scanf("%d",&m);
for (int i=0;i<m;i++){
int num;
scanf("%d",&num);
if (num>0){
p2[w1++] = num;
} else if (num<0){
n2[w2++] = num;
}
}
sort(p1,p1+t1,cmp1);
sort(p2,p2+w1,cmp1);
sort(n1,n1+t2,cmp2);
sort(n2,n2+w2,cmp2);
int t=min(t1,w1);
int count=0;
for (int i=0;i<t;i++){
count += p1[i]*p2[i];
}
t= min(t2,w2);
for (int i=0;i<t;i++){
count += n1[i]*n2[i];
}
printf("%d",count);
}