#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3fffffff;
const long long int INF = 0x1fffffffffffffff;
const double eps = 1e-12;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
long long int dp[2010][2010] = {};
int main() {
  int n;
  scanf("%d", &n);
  vector<pair<int, int> > a(n);
  for (int i = (0); i < (n); i++) scanf("%d", &a[i].first), a[i].second = i;
  sort((a).begin(), (a).end(), greater<pair<int, int> >());
  for (int i = (0); i < (n); i++)
    for (int j = (0); j < (n); j++) {
      if (i + j >= n) continue;
      chmax(dp[i + 1][j], dp[i][j] + a[i + j].first * abs(a[i + j].second - i));
      chmax(dp[i][j + 1],
            dp[i][j] + a[i + j].first * abs(a[i + j].second - (n - 1 - j)));
    }
  long long int res = 0;
  for (int i = (0); i < (n); i++)
    for (int j = (0); j < (n); j++) chmax(res, dp[i][j]);
  printf("%lld\n", res);
  return 0;
}
