#include <iostreamの> 使用して名前空間STD; INT MinSubSum(INT N-、INT A []、INT&besti、INT&bestj){ int型SUM = 0、B = 0; INT J; のため(J = 0; J <N-、J ++ ){ B + = [J]; IF(B> 0){ B = 0; besti = j個の+ 1; // B> 0一旦、レコードの次の位置jを、以前の結果を破棄 bestj = J + 。1; } (B <合計){IF ;合計= B bestj = J;和続いbestj //更新更新 } } 戻り値の合計を、 } int型のmain(){ int型besti、bestj; besti = bestj = 0; int型A [5] = {2、-19,13、-20、-1}; COUT << "および最小フィールド:" << MinSubSum(5、 、besti、bestj)<< ENDL。 COUT << "開始位置" << ENDL << besti; COUT << "終了位置:" << ENDL << bestj; }