//简单的DP问题,求一个数字串最大字串
//如 6 -1 5 4 -7 的最大字串是从第1个数到第4个数即:{ 6, -1, 5, 4 }为该串和最大的字串,还如-1,-1,-1,5的最大字串就只有5一个数字。
//题目很简单不解释,如有疑问请留言..
#include <stdio.h>
#include <stdlib.h>
int a[100001],b[100001];
int main()
{
int t,n,i,j,k=0,max,flag=0;
scanf("%d",&t);
while(t--)
{
if(flag==0)
flag=1;
else
printf("\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
b[0]=a[0];max=b[0];j=0;
for(i=1;i<n;i++)
{
if(b[i-1]<0)
b[i]=a[i];
else
b[i]=b[i-1]+a[i];
if(max<b[i])
{
max=b[i];
j=i;
}
}
if(max<0)
i=j-1;
else
{
for(i=j;i>=0;i--)
{
if(b[i]<0)
break;
}
}
printf("Case %d:\n",++k);
printf("%d %d %d\n",max,i+2,j+1);
}
return 0;
}
HDOJ 1003 Max Sum
最新推荐文章于 2021-03-20 14:42:44 发布