#include <iostream>
#include <math.h>
int miasta;
long long int x=0;
long long int y,z=1;
long long int zysk;
long long int sumka=0;
using namespace std;
int main()
{
cin >> miasta;
for (int i = 0; i < miasta; i++)
{
cin >> zysk;
if (zysk < 0)
{
if (sumka < x) sumka = x;
x += zysk;
y = zysk;
z = x;
}
else
{
x += zysk;
if (sumka < x && z > 0) sumka = x;
else if (zysk >= abs(y) + 1 && z > 0) sumka += zysk + y;
else
{
if (sumka < zysk) sumka = zysk;
if (z < 0)
{
x = zysk;
z = 1;
}
}
}
}
cout << sumka << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgoKaW50IG1pYXN0YTsKbG9uZyBsb25nIGludCB4PTA7CmxvbmcgbG9uZyBpbnQgeSx6PTE7CmxvbmcgbG9uZyBpbnQgenlzazsKbG9uZyBsb25nIGludCBzdW1rYT0wOwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgppbnQgbWFpbigpCnsKCWNpbiA+PiBtaWFzdGE7Cglmb3IgKGludCBpID0gMDsgaSA8IG1pYXN0YTsgaSsrKQoJewoJCWNpbiA+PiB6eXNrOwoKCQlpZiAoenlzayA8IDApCgkJewoJCQlpZiAoc3Vta2EgPCB4KSBzdW1rYSA9IHg7CgkJCXggKz0genlzazsKCQkJeSA9IHp5c2s7CgkJCXogPSB4OwoJCX0KCQllbHNlCgkJewoJCQl4ICs9IHp5c2s7IAoJCQlpZiAoc3Vta2EgPCB4ICYmIHogPiAwKSBzdW1rYSA9IHg7IAoJCQllbHNlIGlmICh6eXNrID49IGFicyh5KSArIDEgJiYgeiA+IDApIHN1bWthICs9IHp5c2sgKyB5OwoJCQllbHNlCgkJCXsKCQkJCWlmIChzdW1rYSA8IHp5c2spIHN1bWthID0genlzazsgCQkJCQkKCQkJCWlmICh6IDwgMCkgCgkJCQl7CgkJCQkJeCA9IHp5c2s7CgkJCQkJeiA9IDE7CgkJCQl9CgkJCX0KCQl9Cgl9Cgljb3V0IDw8IHN1bWthIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==