import java.util.Scanner;
public class Main {
public static int maxSubarraySum(int[] arr) {
int n = arr.length - 1;
int best = 0;
int curr = 0;
for (int i = 1; i <= n; i++) {
curr
= Math.
max(arr
[i
], curr
+ arr
[i
]); if (curr < 0) curr = 0;
best
= Math.
max(best, curr
); }
return best;
}
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in);
int n = sc.nextInt();
int[] arr = new int[n + 1];
for (int i = 1; i <= n; i++) {
arr[i] = sc.nextInt();
}
int ans = maxSubarraySum(arr);
System.
out.
println("Maximum subarray sum is " + ans
); }
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyBpbnQgbWF4U3ViYXJyYXlTdW0oaW50W10gYXJyKSB7CiAgICAgICAgaW50IG4gPSBhcnIubGVuZ3RoIC0gMTsgCgogICAgICAgIGludCBiZXN0ID0gMDsKICAgICAgICBpbnQgY3VyciA9IDA7CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBjdXJyID0gTWF0aC5tYXgoYXJyW2ldLCBjdXJyICsgYXJyW2ldKTsKICAgICAgICAgICAgaWYgKGN1cnIgPCAwKSBjdXJyID0gMDsgCiAgICAgICAgICAgIGJlc3QgPSBNYXRoLm1heChiZXN0LCBjdXJyKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBiZXN0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICAKICAgICAgICBpbnQgbiA9IHNjLm5leHRJbnQoKTsKICAgICAgICBpbnRbXSBhcnIgPSBuZXcgaW50W24gKyAxXTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICAgICAgYXJyW2ldID0gc2MubmV4dEludCgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpbnQgYW5zID0gbWF4U3ViYXJyYXlTdW0oYXJyKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1heGltdW0gc3ViYXJyYXkgc3VtIGlzICIgKyBhbnMpOwogICAgfQp9Cg==