#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int a[100005];
int b[100005];
int main()
{
// freopen("in.txt","r",stdin);
int N,M;
scanf("%d",&N);
for(int i=0;i<N;i++)
scanf("%d",&a[i]);
scanf("%d",&M);
for(int i=0;i<M;i++)
scanf("%d",&b[i]);
sort(a,a+N);
sort(b,b+M);
int sum=0;
int p1,p2;
p1=p2=0;
while(a[p1]<0&&b[p2]<0 && p1<N&&p2<M)
{
sum+=a[p1]*b[p2];
p1++;
p2++;
}
p1=N-1;
p2=M-1;
while(a[p1]>0&&b[p2]>0 && p1>=0&&p2>=0)
{
sum+=a[p1]*b[p2];
p1--;
p2--;
}
printf("%d",sum);
return 0;
}1037. Magic Coupon (25)
最新推荐文章于 2024-02-18 11:23:50 发布
本文介绍了一个简单的C++程序,该程序通过排序并配对两个数组中的负数进行相乘累加,实现了对两个整数数组中负数元素的有效利用,最终输出所有负数对的乘积之和。

420

被折叠的 条评论
为什么被折叠?



