A 队友招募
注意到取最大值时只可能在边缘取。那么就可以写出AC代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int k[200007],b[200007],c[200007];
vector<int>x,y;
signed main(){
cin>>n>>m;
for(int i=0;i<n;i++)cin>>k[i];
for(int i=0;i<n;i++)cin>>b[i];
for(int i=0;i<m;i++)cin>>c[i];
for(int i=0;i<n;i++){
x.push_back(c[0]*k[i]+b[i]);
y.push_back(c[m-1]*k[i]+b[i]);
}
sort(x.begin(),x.end());
sort(y.begin(),y.end());
int maxx=max(x[n-1]+x[n-2],y[n-1]+y[n-2]);
cout<<maxx<<'\n';
}