01-复杂度2 Maximum Subsequence Sum (25分)

#include <stdio.h>
void MaxSubsseqSum1(int A[], int N) {
    int ThisSum = 0, MaxSum = -1;
    int start,end;
    int temp = 0;
    for (int i = 0; i<N; i++) {
        ThisSum += A[i];
        if (ThisSum>MaxSum){
            MaxSum = ThisSum;
            start = temp;
            end = i;
        } else if (ThisSum<0) {
            ThisSum = 0;
            temp = i+1;
        }
    }
    if (MaxSum>=0) {
    printf("%d %d %d\n",MaxSum, A[start], A[end]);
    } else {
        printf("0 %d %d\n", A[0], A[N-1]);
    }
    }
int main(void) {
    int N;
    scanf("%d",&N);
    int A[N];
    for (int i = 0; i<N;i++) {
        scanf("%d",&A[i]);
    }
    MaxSubsseqSum1(A, N);
}

 

posted @ 2015-09-04 15:57  sjDeak  阅读(289)  评论(0)    收藏  举报