21 lines
554 B
Python
21 lines
554 B
Python
def solve(N, A):
|
|
T = [0] * N
|
|
cum = [0] * N
|
|
T[0] = A[0]
|
|
cum[0] = A[0]
|
|
for i in range(1, N):
|
|
cumsum = A[i] + cum[i - 1]
|
|
if T[i - 1] > cumsum: # condition
|
|
if T[i - 1] < 0:
|
|
cum[i] = T[i] = max((A[i], T[i - 1]))
|
|
else:
|
|
cum[i] = max((cumsum, A[i])) # if ordinary
|
|
T[i] = T[i - 1]
|
|
else:
|
|
T[i] = cum[i] = max((cumsum, A[i]))
|
|
return T[-1]
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print(solve(int(input()), list(map(int, input().split()))))
|