- 问题描述
-
这几天,three-god超级无聊,无聊地很啊...结果莫名其妙地在白纸上写了一大堆数字,正想毁尸灭迹的时候,心想无聊就无聊。于是,他决定对这些数字进行处理,他决定找出它们的最大值,当然不是很简单的事了。。。这个最大值要求是每三个相邻数字的和的最大值。。。是不是晕了,亲,乖乖的去看例题吧。
- 输入
-
存在多组数据;
对于每组数据,存在n(3 <= n <= 2000),表示接下的的数字个数;
接下来 n个数字,每个数不超过100000000;
- 输出
-
输出最大值;
此题计算每相邻三个数的和的最大值,那么只需再开一个数组,每一次输入一个数,就把这个数属于的3个位置更新下,求出最大值就行了#include<stdio.h> #include<string.h> #define inf -0x3f3f3f long long num[2010]; int main() { int n; while(~scanf("%d",&n)) { long long max=inf,temp; memset(num,0,sizeof(num)); int i,j,k=1; scanf("%lld",&temp); num[1]+=temp; scanf("%lld",&temp); num[1]+=temp; num[2]+=temp; for(i=3;i<=n;i++) { scanf("%lld",&temp); for(j=i-2;j<=i;j++) { num[j]+=temp; if(max < num[j]) max=num[j]; } } printf("%lld\n",max); } return 0; }
NOJ [1211] 无聊的three-god
最新推荐文章于 2024-05-21 17:18:30 发布