#!/bin/python import sys def largestValue(A): n = len(A) l0 = [0] l1 = [0] s0 = 0 s1 = 0 ans = 0 for x in range(n): ans+=A[x]*s0 s0+=A[x] s1+=A[-1-x] l0.append(s0) l1.append(s1) g = 0 p = 0 while A[p]*(l1[-p-1]-A[p]-l0[p]) <= 0 or A[g]*(l0[-g-1]-A[g]-l1[g]) <= 0: if A[p]*(l1[-p-1]-A[p]-l0[p]) <= 0: ans-=A[p]*(l1[-p-1]-A[p]-l0[p]) p+=1 elif A[-1-g]*(l0[-g-1]-A[g]-l1[g]) <= 0: ans-=A[-1-g]*(l0[-g-1]-A[g]-l1[g]) g+=1 return ans if __name__ == "__main__": n = int(raw_input().strip()) A = map(int, raw_input().strip().split(' ')) result = largestValue(A) print result