import java.util.Scanner;
public class Main {
public static int maxSubarraySum(int[] b) {
int n = b.length - 1;
if (n == 0) return 0;
int[] p1 = new int[n + 1];
int maxSum = 0;
for (int i = 1; i <= n; ++i) {
p1
[i
] = Math.
max(Math.
max(p1
[i
- 1] + b
[i
], b
[i
]),
0); maxSum
= Math.
max(maxSum, p1
[i
]); }
return maxSum;
}
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in);
int n = scanner.nextInt();
int[] b = new int[n + 1]; // Adjust for 1-based indexing
for (int i = 1; i <= n; ++i) {
b[i] = scanner.nextInt();
}
int result = maxSubarraySum(b);
System.
out.
println("Maximum subarray sum is " + result
); }
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewogICBwdWJsaWMgc3RhdGljIGludCBtYXhTdWJhcnJheVN1bShpbnRbXSBiKSB7CiAgICBpbnQgbiA9IGIubGVuZ3RoIC0gMTsKICAgIGlmIChuID09IDApIHJldHVybiAwOwoKICAgIGludFtdIHAxID0gbmV3IGludFtuICsgMV07CiAgICBpbnQgbWF4U3VtID0gMDsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICBwMVtpXSA9IE1hdGgubWF4KE1hdGgubWF4KHAxW2kgLSAxXSArIGJbaV0sIGJbaV0pLCAwKTsKICAgICAgICBtYXhTdW0gPSBNYXRoLm1heChtYXhTdW0sIHAxW2ldKTsKICAgIH0KCiAgICByZXR1cm4gbWF4U3VtOwp9CgoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjYW5uZXIgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIAogICAgICAgIGludCBuID0gc2Nhbm5lci5uZXh0SW50KCk7CiAgICAgICAgaW50W10gYiA9IG5ldyBpbnRbbiArIDFdOyAvLyBBZGp1c3QgZm9yIDEtYmFzZWQgaW5kZXhpbmcKICAgICAgICAKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICAgICAgYltpXSA9IHNjYW5uZXIubmV4dEludCgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpbnQgcmVzdWx0ID0gbWF4U3ViYXJyYXlTdW0oYik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYXhpbXVtIHN1YmFycmF5IHN1bSBpcyAiICsgcmVzdWx0KTsKICAgIH0KfQo=