“年”是一个生活在海洋深处的怪物。每年,它都出现在陆地上,吞噬牲畜甚至是人。为了让怪物离开,人们用红色,光线和爆炸的声音填满他们的村庄,所有这些都吓跑了怪物。
小汤米有 n 个灯笼,大班班有灯笼。汤米的灯具有亮度a1,a2,...,an,而Banban的亮度分别为亮度b1,b2,...,bm。
汤米打算藏一个灯笼,然后班班选择汤米的一个没藏起来的灯笼和一个他自己的灯笼组成一对。这对灯笼的亮度将是两个灯笼亮度的乘积。
Tommy想让乘积尽可能小,而Banban试图让乘积尽可能大。
Input
第一行包含两个整数n和m(2≤n,m≤50)。
第二行包含n个整数a1,a2,...,an。
第三行包含m个整数b1,b2,...,bm。
整数范围从-10
9 到 10
9。
Output
输出单个整数——所选灯笼对的亮度。
Sample Input
Input
2 2 20 18 2 14
Output
252
Input
5 3 -1 0 1 2 3 -1 0 1
Output
2
tommy想要乘积最小,所以他要把构成乘积最大的那一对灯笼中属于自己
的那个灯笼隐藏,找到那个灯笼后把它去掉,再算出最大乘积
climts文件中有各种数据类型的最大值最小值的宏定义
climts文件内容链接:https://blog.csdn.net/FX677588/article/details/71429366
#include <iostream> #include <cstdio> #include <climits> using namespace std; int main() { long long int a[60],b[60]; long long int c,d,i,j,e,maxn,mins=LLONG_MIN; maxn=mins; cin>>c>>d; for(i=0;i<c;i++) scanf("%I64d",&a[i]); for(i=0;i<d;i++) scanf("%I64d",&b[i]); for(i=0;i<c;i++) { for(j=0;j<d;j++) { if(a[i]*b[j]>maxn) { maxn=a[i]*b[j]; e=i; } } } maxn=mins; for(i=0;i<c;i++) { if(i==e) continue; for(j=0;j<d;j++) { if(a[i]*b[j]>maxn) { maxn=a[i]*b[j]; } } } printf("%I64d\n",maxn); return 0; }