问题标题: 酷町堂:5516 OMG

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

给定n个正整数,请你在这n个正整数中找出3个数,要保证3个数之和不超过一个给定的值w,则能够找出来的3个数的乘积最大是多少?如果没有符合条件的3个数,则输出-1。

输入描述 Input Description

输入有两行,
第一行输入两个个正整数n和w;
第二行输入n个正整数。

输出描述 Output Description

输出满足条件的3个数乘积的最大值。(没有符合条件的数则输出-1)

样例输入 Sample Input

5 15 3 9 7 5 3

样例输出 Sample Output

105

数据范围及提示 Data Size & Hint

n<=100,w<=200000。
输入的每个正整数不超过100000。

汪宇航在2021-05-12 20:35:20追加了内容

D.

汪宇航在2021-05-12 20:49:26追加了内容

#include <bits/stdc++.h>

using namespace std;

long long a[500];

long long maxn=-1;

int main(){

int x,y;

cin>>x>>y;

for(int i=1;i<=x;i++){

cin>>a[i];

}

sort(a+1,a+1+x);

for(int i=x;i>=3;i--){

if(a[i]+a[i-1]+a[i-2]<=y){

maxn=max(maxn,a[i]*a[i-1]*a[i-2]);

}

}

cout<<maxn;

return 0;

}

40...


0
0
我要回答