#include <bits/stdc++.h>
#define mk make_pair
#define fs first
#define sc second
using namespace std;
typedef long long ll;
typedef long double ld;
pair<ll, int> a[100010];
ll mem[2010][2010], n;
ll dp(int x, int y){
	if(x+y==n){
		return 0;
	}
	if(mem[x][y]!=-1){
		return mem[x][y];
	}
	ll res=0;
	int tmp=n-x-y-1;
	res=max(a[tmp].fs*abs(a[tmp].sc-x)+dp(x+1, y), a[tmp].fs*abs(a[tmp].sc-(n-y-1))+dp(x, y+1));
	mem[x][y]=res;
	return res;
}
int main(){
    while(cin>>n){
        ll ans=0;
        int x;
        for(int i=0; i<n; ++i){
            scanf("%d",&x);
            a[i]=mk(x, i);
        }
        sort(a, a+n);
        memset(mem, -1, sizeof mem);
        ans=dp(0, 0);
        cout<<ans<<endl;
    }
  return 0;
}


