#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
const long long MOD = 1e9 + 7;
inline long long add(long long a, long long b, long long m) {
  return (((a % m + b % m) % m + m) % m);
}
inline long long mul(long long a, long long b, long long m) {
  return (((a % m * b % m) % m + m) % m);
}
long long go(int i, int j, int n, vector<pair<long long, long long> > &arr) {
  if (i > j) return 0;
  int idx = n - (j - i + 1) + 1;
  long long ans =
      arr[idx].first * abs(arr[idx].second - i) + go(i + 1, j, n, arr);
  ans = max(ans,
            arr[idx].first * abs(j - arr[idx].second) + go(i, j - 1, n, arr));
  return ans;
}
void solve() {
  int n;
  cin >> n;
  vector<pair<long long, long long> > arr(n + 1);
  for (int i = 1; i < n + 1; i++) cin >> arr[i].first, arr[i].second = i;
  sort(arr.begin(), arr.end());
  reverse(arr.begin() + 1, arr.end());
  ;
  cout << go(1, n, n, arr) << '\n';
  return;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0);
  int t = 1;
  for (int tc = 1; tc < t + 1; tc++) {
    solve();
  }
  return 0;
}
