hdu 1003.Max Sum

来源:互联网 发布:c 定义数组长度 编辑:程序博客网 时间:2024/05/18 04:49
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[100001];


int main()
{
    int t,cases=1;
    scanf("%d",&t);
    while(t--)
    {
        printf("Case %d:\n",cases++);
        memset(a,0,sizeof(a));
        int n,i,maxsum=-9999999,s=0;
        int start,end,s1=0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
           scanf("%d",&a[i]);
        for(i=0;i<n;i++)
        {
            s+=a[i];
            if(maxsum<s)
            {
                maxsum=s;
                start=s1;//起始位置
                end=i;//结束位置
            }
            if(s<0)
            {
                s=0;
                s1=i+1;
            }


        }
        printf("%d %d %d\n",maxsum,start+1,end+1);
        if(t>0)
          printf("\n");
    }
    return 0;
}