#include <bits/stdc++.h>
using namespace std;
int n;
std::vector<pair<int, int> > a(2007);
int dp[2007][2007];
int func(int pos, int st, int en) {
  if (pos == (n)) return 0;
  if (dp[pos][st] != -1) return dp[pos][st];
  int res =
      (abs(a[pos].second - st) * a[pos].first) + func(pos + 1, st + 1, en);
  res = max(res, (abs(a[pos].second - en) * a[pos].first) +
                     func(pos + 1, st, en - 1));
  return dp[pos][st] = max(dp[pos][st], res);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  memset(dp, -1, sizeof(dp));
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    a[i] = {x, i};
  }
  sort((a).begin(), (a).end());
  reverse((a).begin(), (a).end());
  cout << func(0, 0, n - 1);
}
