n=int(input()) a=list(map(int,input().split())) ans=-10**20 ca=a+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=min(l,ca[i]) ql=q[:] ca=a[::-1]+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=min(l,ca[i]) qr=q[:] qr=qr[::-1] qr1=qr[:] qr2=qr[:] for i in range(n-1): qr1[i]=max(qr1[i],qr1[i+1]) qr2[i]=min(qr2[i],qr2[i+1]) for i in range(n-1): ans=max(ans,ql[i]*qr1[i+1],ql[i]*qr2[i+1]) ca=a+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=max(l,ca[i]) ql=q[:] ca=a[::-1]+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=min(l,ca[i]) qr=q[:] qr=qr[::-1] qr1=qr[:] qr2=qr[:] for i in range(n-1): qr1[i]=max(qr1[i],qr1[i+1]) qr2[i]=min(qr2[i],qr2[i+1]) for i in range(n-1): ans=max(ans,ql[i]*qr1[i+1],ql[i]*qr2[i+1]) ca=a+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=min(l,ca[i]) ql=q[:] ca=a[::-1]+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=max(l,ca[i]) qr=q[:] qr=qr[::-1] qr1=qr[:] qr2=qr[:] for i in range(n-1): qr1[i]=max(qr1[i],qr1[i+1]) qr2[i]=min(qr2[i],qr2[i+1]) for i in range(n-1): ans=max(ans,ql[i]*qr1[i+1],ql[i]*qr2[i+1]) ca=a+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=max(l,ca[i]) ql=q[:] ca=a[::-1]+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=max(l,ca[i]) qr=q[:] qr=qr[::-1] qr1=qr[:] qr2=qr[:] for i in range(n-1): qr1[i]=max(qr1[i],qr1[i+1]) qr2[i]=min(qr2[i],qr2[i+1]) for i in range(n-1): ans=max(ans,ql[i]*qr1[i+1],ql[i]*qr2[i+1]) print(ans)