DP的核心思想是,如果以i为终止序号的某个连续序列最大和小于0,那么下一个输入加上一个负数必然小于此输入,于是干脆另起炉灶直接赋值改输入;否则,则一个正数加上该输入,最终结果都要比单纯使用该输入要大。【即把连续序列的和直接当成一个数跟下一个输入进行对比】

N = int(input())
dp = [-float('inf')] * N # dp[i]以i为终止序号的序列最大和
dp[0] = int(input())
for i in range(1, N):
    num = int(input())
    # 如果前者小于零,则直接放弃前串另起炉灶;否则加和
    dp[i] = num if dp[i-1] < 0 else (dp[i-1] + num)
print(max(dp))