J - Max Sum

题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/J

题目大意:求最大的和,并输出初末位置

解题思路:两重for循环,第一重的意思是把第i个数看作起点。。

代码如下:

#include <stdio.h>
int main()
{
    int i,N,T;
    int num,sum,start,end,temp,max;
    scanf("%d",&T);int jj=1;
    while(T)
    {
        max=-1010;
        sum=0; temp=1;
        scanf("%d",&N);
        for (i=1;i<=N;i++)
        {
            scanf("%d",&num);
            sum+=num;
            if (sum>max)
            {
                max=sum;
                start=temp;
                end=i;
            }
            if (sum<0)
            {
                sum=0;
                temp=i+1;
            }
        }
        printf("Case %d:\n%d %d %d\n",jj++,max,start,end);
        if (T!=1)
        {
            printf("\n");
        }
        T=T-1;
    }
    return 0;
}

posted @ 2016-08-13 10:19  头像好帅  阅读(153)  评论(0编辑  收藏  举报