// 求最大子列和 #include <cstdio> int a[5]; // O(n^3) int MaxSeq1(int a[], int n) { int max = 0, sum = 0; for(int i = 0; i < n; ++ i) { for(int j = i; j < n; ++ j) { sum = 0; for(int k = i; k <= j; ++ k) { sum += a[k]; } if(sum > max) max = sum; } } return max; } // O(n^2) int MaxSeq2(int a[], int n) { int max = 0, sum = 0; for(int i = 0; i < n; ++ i) { sum = 0; for(int j = i; j < n; ++ j) { sum += a[j]; IF (SUM> max) max = SUM; } } return max; } // online process O (n-) // "line" is meant that each of the input data is a timely process // input terminates in any one place, this algorithm can give the correct solution int MaxSeq4 (A int [], int n-) { int SUM = 0, max = 0; for (int I = 0; I <n-; I ++) { SUM = A + [ I]; IF (SUM> max) max = SUM; the else IF (SUM <0) SUM = 0; } return max; } int main () { for (int I = 0; I <. 5; I ++) { Scanf ( "% D", A & [I]); } the printf ( "% D \ n-", MaxSeq4 (A,. 5)); return 0; } / * . 1. 6. 9 -3 -5 . 11 * /