前言:这道题在NOCOW上没有题解和翻译,百度上也找不到,自己想了好久,终于搞懂题目意思了(提交错了n次啊~~~)<本文在四个月前刷URAL100题时写的,至少在4个月前是这样>
【原题链接】:
http://acm.timus.ru/problem.aspx?space=1&num=1910
【题目大意】:找到三个连在一起的数,使其之和最大,输出中第一个数:这三个数的和,第二个数:中间那个数所在的位置
【代码】
【题目大意】:找到三个连在一起的数,使其之和最大,输出中第一个数:这三个数的和,第二个数:中间那个数所在的位置
【代码】
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int max=0,a[1001],n,num=0,sum=0;
memset(a,-1,sizeof(a));
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n-2;i++)
{
sum=a[i]+a[i+1]+a[i+2];
if(sum>max)
{
max=sum;
num=i+1;
}
}
printf("%d %d",max,num);
//system("pause");
return 0;
}
【数据】:
CASE1:
input 1 4 1 4 1 4
output 9 3
CASE2:
input 1 1 1
output 3 2
CASE3:
input 1 4 4 4 1 1
output 12 3