【题目】http://codeforces.com/problemset/problem/934/A
【题意】A有一组数,B有一组数,,A会删掉A中的某个数,现在B要从A、B中各取1个数做乘法运算,A希望乘积尽可能小,B希望乘积尽可能大,问最后的乘积是多少?
【思路】暴力找到不删数时最大乘积的pair,此时删掉对应的ai一定是最优的。然后再暴力找到最大的乘积即可。
【代码】
#include<bits/stdc++.h>
#define fuck(x) std::cout<<"["<<#x<<"->"<<x<<"]"<<endl;
using namespace std;
typedef long long ll;
const int M=2e5+5;
long long a[100],b[100];
const long long inf=1e18+5;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0; i<n; i++)
{
cin>>a[i];
}
for(int i=0; i<m; i++)
{
cin>>b[i];
}
//找到乘积最大的一对数
long long m1=a[0]*b[0];
int p=0;
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
if(a[i]*b[j]>m1)
{
m1=a[i]*b[j];
p=i;
}
}
}
//把这对数的ai改成a任意另一个数
a[p]=p==0?a[1]:a[0];
//再找乘积最大的
long long ans=a[0]*b[0];a
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
ans=max(ans,a[i]*b[j]);
}
}
cout<<ans<<endl;
return 0;
}