#include <iostream>
#include <math.h>
int miasta;
long long int x=0;
long long int y,z;
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
{
sumka = zysk;
x = zysk;
z = 1;
}
}
}
cout << sumka << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgoKaW50IG1pYXN0YTsKbG9uZyBsb25nIGludCB4PTA7CmxvbmcgbG9uZyBpbnQgeSx6Owpsb25nIGxvbmcgaW50IHp5c2s7CmxvbmcgbG9uZyBpbnQgc3Vta2E9MDsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKaW50IG1haW4oKQp7CgljaW4gPj4gbWlhc3RhOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBtaWFzdGE7IGkrKykKCXsKCQljaW4gPj4genlzazsKCgkJaWYgKHp5c2sgPCAwKQoJCXsKCQkJaWYgKHN1bWthIDwgeCkgc3Vta2EgPSB4OwoJCQl4ICs9IHp5c2s7CgkJCXkgPSB6eXNrOwoJCQl6ID0geDsKCQl9CgkJZWxzZQoJCXsKCQkJeCArPSB6eXNrOyAKCQkJaWYgKHN1bWthIDwgeCAmJiB6ID4gMCkgc3Vta2EgPSB4OyAKCQkJZWxzZSBpZiAoenlzayA+PSBhYnMoeSkgKyAxICYmIHogPiAwKSBzdW1rYSArPSB6eXNrICsgeTsKCQkJZWxzZQoJCQl7CgkJCQlzdW1rYSA9IHp5c2s7CgkJCQl4ID0genlzazsKCQkJCXogPSAxOwoJCQl9CgkJfQoJfQoJY291dCA8PCBzdW1rYSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=