#!/bin/python3 import sys def largestValue(A): # Return the largest value of any of A's nonempty subarrays. G = {} # (i, j): value S = {} # sum[i, j] def getSum(i, j): p = i, j if p in S: return S[p] if i == j: S[p] = A[i] return S[p] S[p] = A[i] + getSum(i + 1, j) return S[p] def dfs(i, j): p = i, j if p in G: return G[p] if i == j: G[p] = 0 return G[p] G[p] = A[i] * getSum(i + 1, j) + dfs(i + 1, j) return G[p] amax = float("-inf") for i in range(len(A)): for j in range(i, len(A)): amax = max(amax, dfs(i, j)) return amax if __name__ == "__main__": n = int(input().strip()) A = list(map(int, input().strip().split(' '))) result = largestValue(A) print(result)