麋鹿的博客

前进的程序媛

HDU1003 max sum

#include<stdio.h>
#include<iostream>
using namespace std;
int T,n;
int result=0;
int a[11000];
struct segment{
    int l,r;
};
int maxR,maxid;

struct segment seg[11000];
int main(){
    scanf("%d",&T);
    int cid=1;
    for(;cid<=T;cid++){
        scanf("%d",&n);
        int i;
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);


        seg[1].l=1;
        seg[1].r=1;

        for(i=2;i<=n;i++){
            if(a[i]+a[i-1]>a[i]){
                a[i]=a[i]+a[i-1];
                seg[i].l=seg[i-1].l;
                seg[i].r=i;
            }else{
                a[i]=a[i];
                seg[i].l=seg[i].r=i;
            }
        maxR=a[1];
        maxid=1;
        for(i=2;i<=n;i++){
            if(a[i]>maxR){
                maxR=a[i];
                maxid=i;}
        }
            if(cid!=1)
        printf("\n");
        }       
        printf("Case %d:\n",cid);
        printf("%d %d %d\n",maxR,seg[maxid].l,seg[maxid].r);
    }
    return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26250097/article/details/52371998
个人分类: POJ
上一篇九度OJ 1091棋盘游戏
想对作者说点什么? 我来说一句

HDU1003——Max Sum

DP第二题

a054545641 a054545641

2015-12-13 19:55:11

阅读数:201

没有更多推荐了,返回首页

关闭
关闭