import sys
input=sys.stdin.readline
n=int(input())
a=list(map(int,input().split()))
dp=[0]*(n)
dp[0]=a[0] # 첫번째 값
for i in range(n-1): # 결과가 dp[1]~dp[n-1] 계산
if a[i]<0: # 현재 더하는 값이 마이너스일 때
dp[i+1]=max(dp[i]+a[i+1], a[i+1]) # 다음 dp는 마이너스를 더한값에 새로운 값 더하는 것과 새로운 값으로 시작하는 것 중 최댓값 선택
else: # 현재 더하는 값이 플러스 일때
dp[i+1]=dp[i]+a[i+1] # 더한다
print(max(dp))
'알고리즘' 카테고리의 다른 글
[백준 알고리즘] 2468번 안전 영역. 파이썬(python) (0) | 2022.07.20 |
---|---|
[백준 알고리즘] 11053번 가장 긴 증가하는 부분 수열. 파이썬(python) (0) | 2022.07.19 |
[백준 알고리즘] 1699번 제곱합. 파이썬(python) (0) | 2022.07.17 |
[백준 알고리즘] 17219번 비밀번호 찾기. 파이썬(python) (0) | 2022.07.14 |
[백준 알고리즘] 16173번 점프왕 쩰리. 파이썬(python) (0) | 2022.07.14 |