HDU1003 max sum

来源:互联网 发布:日语翻译发音软件 编辑:程序博客网 时间:2024/06/05 18:30
#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;}
0 0
原创粉丝点击