#include <bits/stdc++.h>
using namespace std;
void Main() {
  int N;
  cin >> N;
  vector<pair<int, int> > A(N);
  for (int i = 0; i < N; i++) {
    int a;
    cin >> a;
    A[i] = pair<int, int>(a, i + 1);
  }
  sort(A.rbegin(), A.rend());
  long long ans = 0;
  long long dp[N + 1][N + 1];
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 0;
  for (int xy = 1; xy <= N; xy++) {
    for (int x = xy; x >= 0; x--) {
      int y = xy - x;
      int act = A[xy - 1].first;
      int ini_pos = A[xy - 1].second;
      long long xxx = 0, yyy = 0;
      if (x > 0) xxx = dp[y][x - 1] + act * abs(ini_pos - x);
      if (y > 0) yyy = dp[y - 1][x] + act * abs(N - y + 1 - ini_pos);
      dp[y][x] = max(xxx, yyy);
      if (xy == N) ans = max(ans, dp[y][x]);
    }
  }
  cout << ans << endl;
}
int main() {
  std::cin.tie(nullptr);
  std::ios_base::sync_with_stdio(false);
  std::cout << std::fixed << std::setprecision(15);
  Main();
  return 0;
}
