#include <bits/stdc++.h>
using namespace std;

long long dp[2222][2222];

int main(){
	int N;
	cin >> N;
	vector<long long> A(N);
	for(auto &i:A)cin >> i;
	vector<pair<long long,int>> c(N);
	for(int i=0;i<N;i++)c[i]=make_pair(A[i],i);
	
	sort(c.begin(),c.end());
	reverse(c.begin(),c.end());
	
	for(int xy=1;xy<=N;xy++){
		long long C=c[xy-1].first;
		int p=c[xy-1].second;
		for(int x=0;x<=min(N,xy);x++){
			int y=xy-x;
			if(0<x && x<N)dp[x][y]=max(dp[x][y],dp[x-1][y]+C*(p-(x-1)));
			if(0<y && y<N)dp[x][y]=max(dp[x][y],dp[x][y-1]+C*((N-1)-(y-1)-p));
		}
	}
	
	long long ans=0;
	for(int i=0;i<=N;i++)ans=max(ans,dp[i][N-i]);
	cout << ans << endl;
	return 0;
}