#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
inline void chmin(T1 &a, T2 b) {
  if (a > b) a = b;
}
template <typename T1, typename T2>
inline void chmax(T1 &a, T2 b) {
  if (a < b) a = b;
}
signed main() {
  long long n;
  cin >> n;
  vector<pair<long long, long long> > a(n);
  for (int i = 0; i < (n); i++) {
    cin >> a[i].first;
    a[i].second = i + 1;
  }
  sort((a).begin(), (a).end());
  reverse((a).begin(), (a).end());
  long long dp[n + 1][n + 1];
  for (int i = 0; i < (n + 1); i++)
    for (int j = 0; j < (n + 1); j++) dp[i][j] = 0;
  for (int i = 0; i < (n + 1); i++) {
    for (int j = 0; j < (n + 1); j++) {
      if (i > 0 && i + j - 1 < n)
        chmax(dp[i][j],
              dp[i - 1][j] + a[i + j - 1].first * (a[i + j - 1].second - i));
      if (j > 0 && i + j - 1 < n)
        chmax(dp[i][j], dp[i][j - 1] + a[i + j - 1].first *
                                           (n + 1 - j - a[i + j - 1].second));
    }
  }
  long long ans = 0;
  for (int i = 0; i < (n + 1); i++) chmax(ans, dp[i][n - i]);
  cout << ans << endl;
  return 0;
}
