RosettaCodeData/Task/Longest-increasing-subsequence/Icon/longest-increasing-subsequence.icon
2015-02-20 09:02:09 -05:00

11 lines
256 B
Text

procedure main(A)
every writes((!lis(A)||" ") | "\n")
end
procedure lis(A)
r := [A[1]] | fail
every (put(pt := [], [v := !A]), p := !pt) do
if put(p, p[-1] < v) then r := (*p > *r, p)
else p[-1] := (p[-2] < v)
return r
end