hdu1231 最大连续子序列

来源:互联网 发布:上海知杰公关策划 编辑:程序博客网 时间:2024/05/18 13:48

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1231


题意:求出最大连续子序列 的   总和,起始位置,结束位置。


参考博客:http://blog.csdn.net/libin56842/article/details/10328881  


说明:自己写的虽然过了,但是看到大神的代码,自愧不如,下面是模仿ACM!荣耀之路!的代码


#include<stdio.h>#include<algorithm>using namespace std;int main(){    int n;    int a[10100],dp[10100];    while(scanf("%d",&n)!=EOF &&n){        for(int i=0;i<n;i++)            scanf("%d",&a[i]);        int sta=a[0],end=a[0],flag=a[0];        int sum=a[0],MAX=a[0];        for(int i=1;i<n;i++){            if(sum<0){                sum=a[i];                flag=a[i];            }            else                sum=sum+a[i];            if(sum>MAX){                MAX=sum;                sta=flag;                end=a[i];            }        }        if(MAX<0){            printf("0 %d %d\n",a[0],a[n-1]);        }        else            printf("%d %d %d\n",MAX,sta,end);    }    return 0;}


0 0
原创粉丝点击