HDU 1003 Max Sum

为POJ 1050增加熟悉度。

洗洗睡。明天高数竞赛是神马。。。可以吃么。。。。。

不对。。。。。。。过12点了。。。。。。应该说今天。。。说好的不熬夜。。。。


#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=100000+10;
int a[MAXN];

int main()
{
    int kase;
    scanf("%d",&kase);
    int n;
    for(int ri=1;ri<=kase;ri++)
    {
        
        scanf("%d",&n);
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);

        int begin=0,end=0,max,cur_sum,cur_begin,cur_end;
        max=cur_sum=-99999;
        for(int i=0;i<n;i++)
        {
            if(cur_sum<0)
            {
                cur_sum=a[i];
                cur_begin=cur_end=i;
            }
            else
            {
                cur_sum+=a[i];
                cur_end=i;
            }
            if(max<cur_sum)
            {
                max=cur_sum;
                begin=cur_begin;
                end=cur_end;
            }
        }
        printf("Case %d:\n%d %d %d\n",ri,max,begin+1,end+1);
        
        if(ri!=kase)
            printf("\n");
    }
}


posted @ 2013-09-15 00:17  hr_whisper  阅读(112)  评论(0)    收藏  举报