#include<bits/stdc++.h>
using namespace std;
#define sz(s) long(s.size())
#define ll long long
#define F first
#define S second
#define pb push_back	
#define int ll
#define all(v) v.begin(), v.end()
#define file(s) freopen(s".in", "r", stdin); freopen(s".out", "w", stdout)
const int N=1e6+7, mod=1e9+7, Mod=998244353;
vector<int> pre, suf;
int a[N];
ll ans=0;
void dnc(int l, int r, int l1, int r1) {
	int mid=(l1+r1)>>1;
	ll ma=0;
	int cnt=0; 
	for(int w=r; w>=l; w--) {
		int i=pre[w], j=suf[mid];
		ll re=(a[i]+a[j])*1ll*abs(j-i);
		if(ma<re)ma=re, cnt=w;
	}
	ans=max(ans, ma);
	if(l1!=r1) {
		if(mid-l1>0)dnc(l, cnt, l1, mid-1);
		if(r1-mid>0)dnc(cnt, r, mid+1, r1);
	}
}
signed main() {
    ios_base::sync_with_stdio(NULL);
	cin.tie(NULL);
	int n;
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>a[i];
	}		
	pre.pb(1);
	for(int i=2; i<=n; i++) {
		if(a[i]>a[pre.back()])pre.pb(i);
	}
	suf.pb(n);
	for(int i=n-1; i>=1; i--) {
		if(a[i]>a[suf.back()])suf.pb(i);
	}
	reverse(suf.begin(), suf.end());
	dnc(0, sz(pre)-1, 0, sz(suf)-1);
	cout << ans << '\n';
}
