DP_最大子序列和(HDU_1003)

#include <stdio.h>
#include <string.h>

#define MAX    0x7ffff
#define M


void run(int __case,int __t)
{
    int n,start,end,add,in,max,lo;
    start=end=lo=1;
    add=0;    max=-MAX;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&in);

        add+=in;
        if(add > max)
        {
            max=add;    start=lo;    end=i;
        }
        if(add < 0)
        {
            add=0;    lo=i+1;
        }
    }

    printf("Case %d:\n",__case);
    printf("%d %d %d\n",max,start,end);
    if(__case != __t)    printf("\n");
}

int main(int argc, char *argv[])
{
    #ifdef __LOCAL
    freopen("in.txt","r",stdin);
    #endif

    int t;
    scanf("%d",&t);
    for(int i=1;i<=t;i++)
    {
        run(i,t);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/lk1993/p/3090274.html