题解 洛谷P6437 【[COCI2011-2012#6] JACK】
言归正传,这道题目,我们可以用暴力枚举来解决。
首先,输入,输入元素个数,及最大值,还有数组。
暴力枚举三个数的下标即可,注意下标不能重复哦!
求出三个数后,求和,看看符不符合要求,再在所有符合要求的里面取最大值。
于是,没什么好说的了,毕竟他是一道入门题。
上代码:
#include<bits/stdc++.h> using namespace std; int Total,Max; int Array[101]; int main() { register int i,j,k; cin>>Total>>Max; for(i=1;i<=Total;i++) { cin>>Array[i]; } register int Ans=0; for(i=1;i<=Total;i++) { for(j=i+1;j<=Total;j++) { for(k=j+1;k<=Total;k++) { if(Array[i]+Array[j]+Array[k]<=Max) { Ans=max(Ans,Array[i]+Array[j]+Array[k]); } } } } cout<<Ans<<endl; return 0; }
不要妄图追上西坠的太阳,而是要在黎明前就等着它!
浙公网安备 33010602011771号