hdu 1003 Max Sum//DP

来源:互联网 发布:linux 压缩包 编辑:程序博客网 时间:2024/05/29 21:36
#include"iostream"// 很神奇的是如果全是负数不用单独考虑,也可AC
#include"stdio.h"
#include"algorithm"
using namespace std;

int a[100005];

int main()
{
int num,n,begin,end,sum,max,mark,i;
int count=0;
scanf("%d",&num);
while(num--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
sum=a[1];
max=a[1];
begin=1;
end=1;
mark=1;
for(i=2;i<=n;i++)
{
if(sum<0)
{
sum=0;
mark=i;
}
sum+=a[i];
if(sum>max)
{
max=sum;
begin=mark;
end=i;
}
}
count++;
printf("Case %d:\n",count);
printf("%d %d %d\n",max,begin,end);
if(num)
printf("\n");
}
   getchar();getchar();
    return 0;
}