A33801. 寻宝石编程实现有N(1<N<100)个盒子排成一排,每个盒子都放有宝石。请找出3个连续的盒子,使得3个盒子中的宝石数量之和最多。例如:N = 5,盒子中的宝石数量依次为6、2、4、5、1。3个连续的盒子共有3组,分别为(6,2,4)、(2,4,5)、(4,5,1),宝石数量之和最多是(6,2,4),宝石数量为12。输入描述第一行输入一个正整数N(1<N<100),表示这排盒子的数量第二行输入N个…
填空题
困难
知识点
题目描述
寻宝石
编程实现
有N(1<N<100)个盒子排成一排,每个盒子都放有宝石。请找出3个连续的盒子,使得3个盒子中的宝石数量之和最多。
例如:N = 5,盒子中的宝石数量依次为6、2、4、5、1。

3个连续的盒子共有3组,分别为(6,2,4)、(2,4,5)、(4,5,1),宝石数量之和最多是(6,2,4),宝石数量为12。
输入描述
第一行输入一个正整数N(1<N<100),表示这排盒子的数量
第二行输入N个正整数(1≤正整数<100),表示盒子中依次放有的宝石数量,正整数之间以一个空格隔开
输出描述
输出一个整数,表示3个连续的盒子最多的宝石数量
样例输入
5
6 2 4 5 1
样例输出
12
参考答案
#include<iostream>
using namespace std;
int a[101];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int s = a[0] + a[1] + a[2];
for (int i = 1; i < n - 2; i++) {
s = max(s, a[i] + a[i + 1] + a[i + 2]);
}
cout << s;
return 0;
}
上一题
下一题