A1037(25)

感觉自己写的有点琐碎

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=100010;
bool cmp1(int c,int d)
{
	return c>d;
}
bool cmp2(int c,int d)
{
	return c<d;
}
int main()
{
   int a1[maxn],a2[maxn],b1[maxn],b2[maxn],n,m,temp,ans=0;
   int num1=0,num2=0;
   cin>>n;
   for (int i=0;i<n;i++)
   {
   	scanf("%d",&temp);
   	if (temp>0)
   	a1[num1++]=temp;
   	else if(temp<0)
   	a2[num2++]=temp;
   }
   int num3=0,num4=0;
   cin>>m;
   for (int i=0;i<m;i++)
   {
   	scanf("%d",&temp);
   	if (temp>0)
   	b1[num3++]=temp;
   	else if(temp<0)
   	b2[num4++]=temp;
   }
   sort(a1,a1+num1,cmp1);
   sort(a2,a2+num2,cmp2);
   sort(b1,b1+num3,cmp1);
   sort(b2,b2+num4,cmp2);
   if(num1>num3)
   num1=num3;
   for (int i=0;i<num1;i++)
   ans+=a1[i]*b1[i];
   if(num2>num4)
   num2=num4;
   for (int i=0;i<num2;i++)
   ans+=a2[i]*b2[i];
   printf("%d",ans);
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值