//求最大子列和 の#include <cstdioを> int型[5]。 //はO(n ^ 3) INT MaxSeq1([]、int型N INT) { int型の最大値= 0、和= 0。 (; iがN <++ iが0 = INT)のために { ため(int型J = I; J <N; ++ J) { 和= 0。 (; K <= J; int型K = I ++ k)に対する { 和+ = [K]。 } IF(和> MAX)最大=和。 } } 最大を返します。 } // O(N ^ 2) INT MaxSeq2([]、int型N INT) { int型の最大値= 0、和= 0。 (; iがN <++ iが0 = INT)のために { 和= 0。 用(int型J = I; J <N; ++ j)は { 和+ = [J]。 IF(和> MAX)最大=和。 } } 最大を返す; } //オンラインプロセスO(N) //「ライン」の入力データのそれぞれがタイムリーなプロセスであることを意味する //入力は、いずれかの場所で終了このアルゴリズムは、正しい解決策を与えることができる INT MaxSeq4(A INT []、INT N-) { int型SUM = 0、最大= 0; のために(INT I = 0;私は<N-; Iは++) { SUM = A + [ I]は、 IF(SUM> MAX)最大= SUM; 他IF(SUM <0)SUM = 0; } 最大を返す; } (INTメイン) { ため(INT I = 0;私は<5; Iは++) { scanf関数( "%のD"、A&[I]); } のprintf( "%d個の\ N-"、MaxSeq4(,. 5)); 0を返す; } / * 。1. 6 9 -3 -5 11。 * /