N = int(input()) A = list(map(int,input().split())) def f(a): S = [0] for i in range(N): S.append(S[-1] + a[i]) left = [(float("inf"),float("-inf"))] MIN,MAX = 0,0 for i in range(1,N+1): min_v = min(left[-1][0],S[i] - MAX) max_v = max(left[-1][1],S[i] - MIN) left.append((min_v,max_v)) MAX = max(MAX,S[i]) MIN = min(MIN,S[i]) return left left = f(A) right = f(A[::-1]) ans = float("-inf") for i in range(1,N): ans = max(ans,left[i][0] * right[N-i][0],left[i][1] * right[N-i][1]) print(ans)