RosettaCodeData/Task/Greatest-subsequential-sum/Perl-6/greatest-subsequential-sum-1.pl6
2017-09-25 22:28:19 +02:00

13 lines
311 B
Raku

sub max-subseq (*@a) {
my ($start, $end, $sum, $maxsum) = -1, -1, 0, 0;
for @a.kv -> $i, $x {
$sum += $x;
if $maxsum < $sum {
($maxsum, $end) = $sum, $i;
}
elsif $sum < 0 {
($sum, $start) = 0, $i;
}
}
return @a[$start ^.. $end];
}