题意: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; }