Module LIS_example { Function LIS { LD=Stack.Size-1 dim L(0 to LD) For i=0 to LD : Read V: L(i):=Stack:=V:next M=1 M1=LD for i=LD-1 to 0 for j=LD to i+1 if stackitem(L(i))=M then M1=i:M=Len(L(i)) next =L(M1) } Const seq$="sequence", subseq$="Longest increasing subsequence" Document doc$ Disp(seq$, Stack:=3,2,6,4,5,1) Disp(subseq$, Lis(3,2,6,4,5,1)) Disp(seq$, Stack:=0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15) Disp(subseq$, LIS(0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15)) Print #-2,Doc$ Clipboard Doc$ Sub Disp(title$, m) local n=each(m), s$ while n s$+=", "+str$(stackitem(n),"") end while s$=trim$(mid$(s$, 2)) Doc$=title$+": "+s$+{ } End Sub } LIS_example