7-1 Maximum Subsequence Sum (25分)

 

 

 

 解题思路:寻找最大子列和,并输出最大子列和的第一个数和最后一个数

#include <stdio.h>
int main(int argc,char **agrv) {
    int n;
    int i;
    scanf("%d",&n);
    int a[n];
    int b[2];
    int sum=0;
    int max=0;
    int cnt=0,count=0,tmp=0;
    for(i=0; i<n; i++) {
        scanf("%d",&a[i]);
        if(a[i]<0)
            cnt++;
        sum+=a[i];
        if(sum>=0) {
            if(sum>max) {       
                b[0]=a[tmp];
                max=sum;
                b[1]=a[i];
            }
        } else {
            sum=0;
            tmp=i+1;
        }
    }
    if(cnt!=n)
        printf("%d %d %d",max,b[0],b[1]);
    else
        printf("0 %d %d",a[0],a[n-1]);
    return 0;
}

 

posted @ 2020-04-23 15:37  跃鱼  阅读(131)  评论(0编辑  收藏  举报