题意:Banban将会从Tommy的序列中取走一个数,和自己序列的一个数组成乘积最大。但是Tommy希望Banban最终组成的数尽可能小,而且它将会提前从自己序列中取走一个数以此来达到目的。思路:题目有点绕,其实Tommy一开始希望结果尽可能小这句话我读到了,但是没能理解,解题时也没想到。一开始没想用暴力做,但是后来发现单独考虑的情况太多了,总是WA。暴力要两次,第一次是为了让Tommy取数,第二次是为了求结果。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <string>
#include <sstream>
#include <iostream>
#include <time.h>
#include <queue>
#include <list>
#include <map>
#include <set>
#include <vector>
#include <stack>
#include <bitset>
using namespace std;
int main(){
    int n,m;
    long long a[55],b[55],c[55];
    cin>>n>>m;
    for(int i=0;i<n;++i)cin>>a[i];
    for(int i=0;i<m;++i)cin>>b[i];
    for(int i=0;i<n;++i){
        c[i]=a[i]*b[0];
        for(int j=1;j<m;++j)
            c[i]=max(c[i],a[i]*b[j]);
    }
    sort(c,c+n);
    cout<<c[n-2]<<endl;
    return 0;
}