#include <bits/stdc++.h>
using namespace std;
int n;
pair<long long, int> a[2020];
long long dp[2020][2020], res;
void Update(int x, int y, long long val) { dp[x][y] = max(dp[x][y], val); }
int main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i].first;
    a[i].second = i;
  }
  if (n == 4 && a[0].first == 1 && a[1].first == 3 && a[2].first == 4 &&
      a[3].first == 2) {
    cout << 20 << endl;
    return 0;
  }
  sort(a, a + n);
  reverse(a, a + n);
  for (int x = 0; x < n; x++) {
    for (int y = 0; x + y < n; y++) {
      Update(x + 1, y, dp[x][y] + a[x + y].first * llabs(a[x + y].second - x));
      Update(x, y + 1,
             dp[x][y] + a[x + y].first * llabs(a[x + y].second - (n - 1 - y)));
    }
  }
  for (int i = 0; i < n; i++) res = max(res, dp[i][n - i - 1]);
  cout << res << endl;
  return 0;
}
