import java.util.*; public class Main { public static void main(String[] args){ Scanner input = new Scanner(System.in); int n = input.nextInt(); ArrayList<Integer> list = new ArrayList<>(); int[] arr = new int[n]; for(int i = 0; i < n; i++){ arr[i] = input.nextInt(); } int[] dp = new int[n]; dp[0] = arr[0]; int max = dp[0]; //动态规划,dp【i】存储以i为结尾的子数组的最大和,每次比较上一个数的和+自身与自身,存储大的。 for(int i = 1; i < n; i++){ dp[i] = Math.max(dp[i-1] + arr[i], arr[i]); max = Math.max(max,dp[i]); } System.out.println(max); } }