15 lines
446 B
Python
15 lines
446 B
Python
def maxsumit(iterable):
|
|
maxseq = seq = []
|
|
start, end, sum_start = -1, -1, -1
|
|
maxsum_, sum_ = 0, 0
|
|
for i, x in enumerate(iterable):
|
|
seq.append(x); sum_ += x
|
|
if maxsum_ < sum_:
|
|
maxseq = seq; maxsum_ = sum_
|
|
start, end = sum_start, i
|
|
elif sum_ < 0:
|
|
seq = []; sum_ = 0
|
|
sum_start = i
|
|
assert maxsum_ == sum(maxseq[:end - start])
|
|
return maxseq[:end - start]
|