import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
res = [[] for i in range(n)]
if n == 1:
print(arr[0])
elif n == 2:
print(max(arr[1], arr[0], arr[0] + arr[1]))
elif n >= 3:
res[0] = arr[0]
res[1] = max(res[0] + arr[1], arr[1])
res[2] = max(res[1] + arr[2], arr[2], arr[1] + arr[2])
for i in range(3, n):
res[i] = max(res[i - 1] + arr[i], arr[i], arr[i - 1] + arr[i])
print(max(res))
res 는 연속으로 선택했을경우 가장 큰 값
arr 는 입력받은 값
n의 값이 1보다 같거나 클 경우라서
n = 1 , n = 2 예외로 처리해두고
n 이 3보다 같거나 클 경우
경우의 수 3가지
res[i-1] + arr[i] 를 선택했을때
arr[i] 만 선택했을때
arr[i-1] + arr[i] 를 선택했을때
3가지 중에 가장 큰 값을 골라서 res에 넣고
res배열 안에서 가장 큰 값을 선택함
max(res) 를 사용하지 않고 res[i]에 값을 넣을때마다
비교해서 넣어도 가능했지만 귀찮아서 max함수를 사용해버림...