题意:有一长度为\(n\)的序列,求其中任意五个元素乘积的最大值.
题解:先排序,然后乘积能是正数就搞正数,模拟一下就好了.
代码:
int t;
ll n;
ll a[N];
int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i];
}
sort(a+1,a+1+n);
ll cnt1=a[n]*a[n-1]*a[n-2]*a[n-3]*a[n-4];
ll cnt2=a[1]*a[2]*a[3]*a[4]*a[5];
ll cnt3=a[n]*a[1]*a[2]*a[3]*a[4];
ll cnt4=a[1]*a[2]*a[n]*a[n-1]*a[n-2];
ll res=max(cnt1,max(cnt2,max(cnt3,cnt4)));
cout<<res<<endl;
}return 0;
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章