#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; vector v1; vector v2; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { int a; scanf("%d", &a); v1.push_back(0); v2.push_back(0); if (a > 0) { v1[i] = a; } else { v2[i] = -a; } } long long int way = LLONG_MIN; for (int j = 0; j < v2.size(); j++) { long long int sum1 = 0; long long int self1 = 0; long long int sum2 = 0; long long int self2 = 0; for (int i = j; i < v1.size(); i++) { sum1 += v1[i]; self1 += v1[i] * v1[i]; sum2 += v2[i]; self2 += v2[i] * v2[i]; long long int ans = 0; ans += (sum1*sum1 - self1) / 2LL; ans += (sum2*sum2 - self2) / 2LL; ans -= sum1*sum2; way = max(way, ans); } if (clock() / (double)(CLOCKS_PER_SEC)>1.7)break; } printf("%lld\n", way); return 0; }