import java.util.Scanner;
class Main {
public static int maxSubarraySum(int[] nums) {
int maxSoFar = nums[0];
int currentMax = nums[0];
for (int i = 1; i < nums.length; i++) {
currentMax
= Math.
max(nums
[i
], currentMax
+ nums
[i
]); maxSoFar
= Math.
max(maxSoFar, currentMax
); }
return maxSoFar;
}
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = sc.nextInt();
}
int result = maxSubarraySum(nums);
System.
out.
println("Maximum subarray sum is " + result
);
sc.close();
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKY2xhc3MgTWFpbiB7CgogICAgcHVibGljIHN0YXRpYyBpbnQgbWF4U3ViYXJyYXlTdW0oaW50W10gbnVtcykgewogICAgICAgIGludCBtYXhTb0ZhciA9IG51bXNbMF07CiAgICAgICAgaW50IGN1cnJlbnRNYXggPSBudW1zWzBdOwoKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG51bXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgY3VycmVudE1heCA9IE1hdGgubWF4KG51bXNbaV0sIGN1cnJlbnRNYXggKyBudW1zW2ldKTsKICAgICAgICAgICAgbWF4U29GYXIgPSBNYXRoLm1heChtYXhTb0ZhciwgY3VycmVudE1heCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbWF4U29GYXI7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIGludCBuID0gc2MubmV4dEludCgpOwogICAgICAgIAogICAgICAgIGludFtdIG51bXMgPSBuZXcgaW50W25dOyAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBudW1zW2ldID0gc2MubmV4dEludCgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpbnQgcmVzdWx0ID0gbWF4U3ViYXJyYXlTdW0obnVtcyk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYXhpbXVtIHN1YmFycmF5IHN1bSBpcyAiICsgcmVzdWx0KTsKICAgICAgICAKICAgICAgICBzYy5jbG9zZSgpOyAKICAgIH0KfQo=