#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> numbers(n);
for(auto& number: numbers){
cin>>number;
}
vector<int> maxPrefixSum(n), maxSuffixSum(n);
int currentSum = 0;
for(int i=0; i<n; i++){
currentSum = max(0,max(numbers[i],currentSum+numbers[i]));
maxPrefixSum[i] = currentSum;
}
currentSum = 0;
for(int i=n-1; i>=0; i--){
currentSum = max(0, max(numbers[i], currentSum + numbers[i]));
maxSuffixSum[i] = currentSum;
}
vector<int> maxPrefixAcc(n), maxSuffixAcc(n);
int current = INT_MIN;
for(int i=0; i<n; i++){
current = max(current, maxPrefixSum[i]);
maxPrefixAcc[i] = current;
}
current = INT_MIN;
for(int i=n-1; i>=0; i--){
current = max(current, maxSuffixSum[i]);
maxSuffixAcc[i] = current;
}
int answer = INT_MIN;
for(int i=0; i<n-1; i++){
int sum = maxPrefixAcc[i] + maxSuffixAcc[i+1];
answer = max(answer,sum);
}
cout<<answer;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuOwoJY2luPj5uOwoJCgl2ZWN0b3I8aW50PiBudW1iZXJzKG4pOwoJCglmb3IoYXV0byYgbnVtYmVyOiBudW1iZXJzKXsKCQljaW4+Pm51bWJlcjsKCX0KCQoJdmVjdG9yPGludD4gbWF4UHJlZml4U3VtKG4pLCBtYXhTdWZmaXhTdW0obik7CgkKCWludCBjdXJyZW50U3VtID0gMDsKCQoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQljdXJyZW50U3VtID0gbWF4KDAsbWF4KG51bWJlcnNbaV0sY3VycmVudFN1bStudW1iZXJzW2ldKSk7CgkJbWF4UHJlZml4U3VtW2ldID0gY3VycmVudFN1bTsKCX0KCQoJY3VycmVudFN1bSA9IDA7CgkKCWZvcihpbnQgaT1uLTE7IGk+PTA7IGktLSl7CgkJY3VycmVudFN1bSA9IG1heCgwLCBtYXgobnVtYmVyc1tpXSwgY3VycmVudFN1bSArIG51bWJlcnNbaV0pKTsKCQltYXhTdWZmaXhTdW1baV0gPSBjdXJyZW50U3VtOwoJfQoJCgl2ZWN0b3I8aW50PiBtYXhQcmVmaXhBY2MobiksIG1heFN1ZmZpeEFjYyhuKTsKCQoJaW50IGN1cnJlbnQgPSBJTlRfTUlOOwoJCglmb3IoaW50IGk9MDsgaTxuOyBpKyspewoJCWN1cnJlbnQgPSBtYXgoY3VycmVudCwgbWF4UHJlZml4U3VtW2ldKTsKCQltYXhQcmVmaXhBY2NbaV0gPSBjdXJyZW50OwoJfQoJCgljdXJyZW50ID0gSU5UX01JTjsKCQoJZm9yKGludCBpPW4tMTsgaT49MDsgaS0tKXsKCQljdXJyZW50ID0gbWF4KGN1cnJlbnQsIG1heFN1ZmZpeFN1bVtpXSk7CgkJbWF4U3VmZml4QWNjW2ldID0gY3VycmVudDsKCX0KCQoJaW50IGFuc3dlciA9IElOVF9NSU47CgkKCWZvcihpbnQgaT0wOyBpPG4tMTsgaSsrKXsKCQlpbnQgc3VtID0gbWF4UHJlZml4QWNjW2ldICsgbWF4U3VmZml4QWNjW2krMV07CgkJYW5zd2VyID0gbWF4KGFuc3dlcixzdW0pOwoJfQoJCgljb3V0PDxhbnN3ZXI7CgkKCXJldHVybiAwOwp9