PROGRAM MAX_SUM DIM A%[11],B%[10],C%[4] !$DYNAMIC DIM P%[0] PROCEDURE MAX_SUBSEQUENCE(P%[],N%->A$) LOCAL A%,B%,I%,J%,M%,S% A%=1 FOR I%=0 TO N% DO S%=0 FOR J%=I% TO N% DO S%+=P%[J%] IF S%>M% THEN M%=S% A%=I% B%=J% END IF END FOR END FOR IF A%>B% THEN A$="[]" EXIT PROCEDURE END IF A$="[" FOR I%=A% TO B% DO A$+=STR$(P%[I%])+"," END FOR A$=LEFT$(A$,LEN(A$)-1)+"]" END PROCEDURE PROCEDURE SHOW_ARRAY(P%[],N%->A$) LOCAL I% A$="[" FOR I%=0 TO N% DO A$+=STR$(P%[I%])+"," END FOR A$=LEFT$(A$,LEN(A$)-1)+"]" END PROCEDURE BEGIN A%[]=(0,1,2,-3,3,-1,0,-4,0,-1,-4,2) N%=UBOUND(A%,1) !$DIM P%[N%] SHOW_ARRAY(A%[],N%->A$) PRINT(A$;" -> ";) MAX_SUBSEQUENCE(A%[],N%->A$) PRINT(A$) !$ERASE P% B%[]=(-1,-2,3,5,6,-2,-1,4,-4,2,-1) N%=UBOUND(B%,1) !$DIM P%[N%] SHOW_ARRAY(B%[],N%->A$) PRINT(A$;" -> ";) MAX_SUBSEQUENCE(B%[],N%->A$) PRINT(A$) !$ERASE P% C%[]=(-1,-2,-3,-4,-5) N%=UBOUND(C%,1) !$DIM P%[N%] SHOW_ARRAY(C%[],N%->A$) PRINT(A$;" -> ";) MAX_SUBSEQUENCE(C%[],N%->A$) PRINT(A$) !$ERASE P% END PROGRAM