Greatest subsequential sum: Difference between revisions

Content added Content deleted
(→‎{{header|RPL}}: Efficient solution)
(Added Quackery.)
Line 3,095: Line 3,095:
{{Out}}
{{Out}}
<pre>(15, [3, 5, 6, -2, -1, 4])</pre>
<pre>(15, [3, 5, 6, -2, -1, 4])</pre>

=={{header|Quackery}}==

<syntaxhighlight lang="Quackery"> [ stack ] is maxseq ( --> s )
[ stack ] is maxsum ( --> s )

[ 0 swap witheach + ] is sum ( --> s )

[ [] maxseq put
0 maxsum put
dup size times
[ dup size times
[ dup i^ 1+ split
drop dup sum
dup maxsum share > iff
[ maxsum replace
maxseq replace ]
else 2drop ]
behead drop ]
drop
maxsum take
maxseq take ] is maxsubseqsum ( [ --> n [ )

' [ [ 1 2 3 4 5 -8 -9 -20 40 25 -5 ]
[ -1 -2 3 5 6 -2 -1 4 -4 2 -1 ]
[ -1 -2 -3 -4 -5 ]
[ ] ]
witheach
[ dup
say "Sequence: " echo cr
maxsubseqsum
say "Subsequence: " echo cr
say "Sum: " echo cr
cr ]</syntaxhighlight>

{{out}}

<pre>Sequence: [ 1 2 3 4 5 -8 -9 -20 40 25 -5 ]
Subsequence: [ 40 25 ]
Sum: 65

Sequence: [ -1 -2 3 5 6 -2 -1 4 -4 2 -1 ]
Subsequence: [ 3 5 6 -2 -1 4 ]
Sum: 15

Sequence: [ -1 -2 -3 -4 -5 ]
Subsequence: [ ]
Sum: 0

Sequence: [ ]
Subsequence: [ ]
Sum: 0
</pre>


=={{header|R}}==
=={{header|R}}==