测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题