站外题20分求助,谢谢大佬!!!
  • 板块题目总版
  • 楼主qn606
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/8/15 14:53
  • 上次更新2024/8/15 16:58:52
查看原帖
站外题20分求助,谢谢大佬!!!
1271455
qn606楼主2024/8/15 14:53

题目描述 Description

给定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。

#include <iostream>   
#include <algorithm>  
using namespace std;  
int w,n;
int pd[105];
int maxn=-1;
int main() {  
    cin>>n>>w;
    for(int i=1;i<=n;i++){
        cin>>pd[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            for(int k=j+1;k<=n;k++){
                if(pd[i]+pd[j]+pd[k]<=w&&pd[i]*pd[j]*pd[k]>maxn){
                    maxn=pd[i]*pd[j]*pd[k];
                }
            }
        }
    }
    cout<<maxn;
    return 0;  
}

感谢大佬们的指导!谢谢大佬们!

2024/8/15 14:53
加载中...