hdu 1858

题解:

  该题与hdu1003一模一样。

代码如下:

#include <stdio.h>

int main()
{
    int n, m, i, stone, L, R, bL;
    __int64 sum, bsum;
    scanf("%d", &n);
    while (n--)
    {
        scanf("%d", &m);
        sum = -4444; //initialization sum
        bsum = 0;    //sum in buffer
        bL = 1;    //L of the buffer sum
        for (i=1; i<=m; i++)
        {
            scanf("%d", &stone);
            bsum += stone;
            if (sum < bsum)
            {
                sum = bsum;
                L = bL;
                R = i;
            }
            if (bsum < 0)
            {//reset buffer sum
                bsum = 0;
                bL = i + 1;
            }
        }
        printf("%I64d %d %d\n", sum, L, R);
    }
    return 0;
}

 

posted on 2013-01-27 11:28  zm001  阅读(109)  评论(0编辑  收藏  举报