#include <bits/stdc++.h>
using namespace std;
template <typename T>
bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <typename T>
bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
const long long mod = 1e9 + 7;
const int inf = 1 << 30;
long long dp[2010][2010];
int main() {
  int n;
  cin >> n;
  vector<long long> a(n);
  for (int i = 0; i < (int)(n); i++) cin >> a[i];
  vector<pair<int, int> > v(0);
  for (int i = 0; i < (int)(n); i++) {
    v.emplace_back(a[i], i);
  }
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  long long ans = 0;
  for (int i = 0; i < (int)(n); i++)
    for (int j = 0; j <= i; j++) {
      chmax(dp[i + 1][j],
            dp[i][j] + v[i].first * abs(v[i].second - ((n - 1) - (i - j))));
      chmax(dp[i + 1][j + 1], dp[i][j] + v[i].first * abs(v[i].second - j));
    }
  for (int j = 0; j < (int)(n + 1); j++) {
    chmax(ans, dp[n][j]);
  }
  cout << ans << endl;
}
