#include <bits/stdc++.h>
using namespace std;
long long bin(long long a, long long b, long long p) {
  long long res = 1;
  for (a %= p; b; b >>= 1, a = a * a % p)
    if (b & 1) res = res * a % p;
  return res;
}
const int N = 2e3 + 50;
vector<int> a, p;
vector<vector<int>> dp;
vector<pair<int, int>> dat;
int n;
inline void update(int &a, int b) { a = max(a, b); }
int main(int argc, char const *argv[]) {
  scanf("%d", &n);
  a = vector<int>(n);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i]);
    dat.emplace_back(a[i], i);
  }
  sort(dat.rbegin(), dat.rend());
  dp = vector<vector<int>>(n + 1, vector<int>(n + 1, 0));
  for (int i = 0; i < n; ++i) {
    ;
    for (int j = 0; j <= i; ++j) {
      ;
      update(dp[i + 1][j],
             dp[i][j] + abs(dat[i].second - (n - (i - j) - 1)) * dat[i].first);
      update(dp[i + 1][j + 1],
             dp[i][j] + abs(dat[i].second - j) * dat[i].first);
    }
  };
  printf("%d\n", *max_element(dp[n].begin(), dp[n].end()));
  return 0;
}
