#include <iostream>
#include <cstdlib>
#include <time.h>
#include <cmath>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int *x;
int x2;
int i;
int p1;
int p2;
int i2;
int* m;
int* m2;
int z=1;
int i3;
int i4;
int checktop(int c) {
for (i2 = 0, p1 = 0, p2 = 0; i2 < c; i2++, x++)
p1 += *x;
x = m;
return p1;
}
int checkdown(int c2) {
x = x + (x2 - c2);
for (i2 = 0, p1 = 0, p2 = 0; i2 < c2; i2++, x++)
p1 += *x;
x = m;
return p1;
}
int checkall() {
x = m;
for (i2 = 0, p1 = 0, p2 = 0; i2 < x2; i2++,x++) {
p1 += *x;
}
x = m;
return p1;
}
void cutofftop(int c) {
m = m + c;
x = m;
x2 = x2 - c;
}
void cutoffdown(int c) {
x2 = x2 - c;
}
int sercz() {
z = 0;
int *xc = m;
int *xc2 = m;
x = m;
int y;
y = checkall();
for (i3 = 1; i3 < (x2+1); i3++, xc++) {
//cout << *xc << endl;
if (*xc < 0) {
if (checkdown(x2 - i3) > y)
if (checktop(i3 - 1) > checkdown(x2 - i3)) {
xc2 += x2;
for (i4 = x2; i4 > i3 + 1; i4++, xc2--) {
if (*xc2 < 0) { cutoffdown(abs(i4 - x2) + 1); z = 1; break; }
}
if (z == 0) {
cutoffdown(x2 - i3 + 1);
z = 1;
break;
}
}
else {
//for (i4 = x2; i4 > i3 + 1; i4++, xc2--) {
// if (*xc2 < 0) { cutoffdown(abs(i4 - x2) + 1); z = 1; break; }
//}
//if (z == 0) {
cutofftop(i3);
z = 1;
break;
}
else if (checktop(i3-1) > y) {
xc2 += x2;
for (i4 = x2; i4 > i3 + 1; i4++, xc2--) {
if (*xc2 < 0) { cutoffdown(abs(i4 - x2) + 1); z = 1; break;}
}
if (z == 0) {
cutoffdown(x2 - i3 + 1);
z = 1;
break;
}
}
}
}
x = m;
return 1;
}
int main() {
cin >> x2;
x = new int[x2];
m = x;
m2 = x;
for (i = 0; i < x2; i++, x++) cin.ignore(), cin >> *x;
x = m;
while (z == 1) sercz();
cout << checkall() << endl;
x = m2;
delete[] x;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPHRpbWUuaD4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8bG9jYWxlLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50ICp4OwppbnQgeDI7CmludCBpOwppbnQgcDE7CmludCBwMjsKaW50IGkyOwppbnQqIG07CmludCogbTI7CmludCB6PTE7CmludCBpMzsKaW50IGk0OwoKaW50IGNoZWNrdG9wKGludCBjKSB7Cglmb3IgKGkyID0gMCwgcDEgPSAwLCBwMiA9IDA7IGkyIDwgYzsgaTIrKywgeCsrKQoJCXAxICs9ICp4OwoJeCA9IG07CglyZXR1cm4gcDE7Cn0KCgppbnQgY2hlY2tkb3duKGludCBjMikgewoJeCA9IHggKyAoeDIgLSBjMik7Cglmb3IgKGkyID0gMCwgcDEgPSAwLCBwMiA9IDA7IGkyIDwgYzI7IGkyKyssIHgrKykKCQlwMSArPSAqeDsKCXggPSBtOwoJcmV0dXJuIHAxOwp9CgppbnQgY2hlY2thbGwoKSB7Cgl4ID0gbTsKCWZvciAoaTIgPSAwLCBwMSA9IDAsIHAyID0gMDsgaTIgPCB4MjsgaTIrKyx4KyspIHsKCQlwMSArPSAqeDsKCQkKCX0KCXggPSBtOwoJcmV0dXJuIHAxOwp9Cgp2b2lkIGN1dG9mZnRvcChpbnQgYykgewoJbSA9IG0gKyBjOwoJeCA9IG07Cgl4MiA9IHgyIC0gYzsKfQoKdm9pZCBjdXRvZmZkb3duKGludCBjKSB7Cgl4MiA9IHgyIC0gYzsKfQoKaW50IHNlcmN6KCkgewoJeiA9IDA7CglpbnQgKnhjID0gbTsKCWludCAqeGMyID0gbTsKCXggPSBtOwoJaW50IHk7Cgl5ID0gY2hlY2thbGwoKTsKCWZvciAoaTMgPSAxOyBpMyA8ICh4MisxKTsgaTMrKywgeGMrKykgewoJCS8vY291dCA8PCAqeGMgPDwgZW5kbDsKCQlpZiAoKnhjIDwgMCkgewoJCQlpZiAoY2hlY2tkb3duKHgyIC0gaTMpID4geSkKCQkJCWlmIChjaGVja3RvcChpMyAtIDEpID4gY2hlY2tkb3duKHgyIC0gaTMpKSB7CgkJCQkJeGMyICs9IHgyOwoJCQkJCWZvciAoaTQgPSB4MjsgaTQgPiBpMyArIDE7IGk0KyssIHhjMi0tKSB7CgkJCQkJCWlmICgqeGMyIDwgMCkgeyBjdXRvZmZkb3duKGFicyhpNCAtIHgyKSArIDEpOyB6ID0gMTsgYnJlYWs7IH0KCQkJCQl9CgkJCQkJaWYgKHogPT0gMCkgewoJCQkJCQljdXRvZmZkb3duKHgyIC0gaTMgKyAxKTsKCQkJCQkJeiA9IDE7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgewoJCQkJCS8vZm9yIChpNCA9IHgyOyBpNCA+IGkzICsgMTsgaTQrKywgeGMyLS0pIHsKCQkJCQkvLwlpZiAoKnhjMiA8IDApIHsgY3V0b2ZmZG93bihhYnMoaTQgLSB4MikgKyAxKTsgeiA9IDE7IGJyZWFrOyB9CgkJCQkJLy99CgkJCQkJLy9pZiAoeiA9PSAwKSB7CgkJCQkJCWN1dG9mZnRvcChpMyk7CgkJCQkJCXogPSAxOwoJCQkJCQlicmVhazsKCQkJCX0KCQkJZWxzZSBpZiAoY2hlY2t0b3AoaTMtMSkgPiB5KSB7CgkJCQl4YzIgKz0geDI7CgkJCQlmb3IgKGk0ID0geDI7IGk0ID4gaTMgKyAxOyBpNCsrLCB4YzItLSkgewoJCQkJCWlmICgqeGMyIDwgMCkgeyBjdXRvZmZkb3duKGFicyhpNCAtIHgyKSArIDEpOyB6ID0gMTsgYnJlYWs7fQoJCQkJfQoJCQkJaWYgKHogPT0gMCkgewoJCQkJCWN1dG9mZmRvd24oeDIgLSBpMyArIDEpOwoJCQkJCXogPSAxOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoJfQoJeCA9IG07CglyZXR1cm4gMTsJCn0KCgoKCmludCBtYWluKCkgewoJY2luID4+IHgyOwoJeCA9IG5ldyBpbnRbeDJdOwoJbSA9IHg7CgltMiA9IHg7Cglmb3IgKGkgPSAwOyBpIDwgeDI7IGkrKywgeCsrKSBjaW4uaWdub3JlKCksIGNpbiA+PiAqeDsKCXggPSBtOwoJd2hpbGUgKHogPT0gMSkgc2VyY3ooKTsKCWNvdXQgPDwgY2hlY2thbGwoKSA8PCBlbmRsOwoJeCA9IG0yOwoJZGVsZXRlW10geDsKCXJldHVybiAwOwp9