#include <bits/stdc++.h>
using namespace std;
struct node {
  int id;
  int v;
  bool operator<(const node& b) const { return v > b.v; }
} e[2000 + 50];
int n;
long long ABS(long long x) { return x < 0 ? 0 - x : x; }
long long dfs(int l, int r, int i) {
  if (i > n) return 0;
  long long tp = e[i].v;
  long long k = tp * ABS(l - e[i].id);
  long long j = tp * ABS(r - e[i].id);
  long long re = 0;
  re = max(k + dfs(l + 1, r, i + 1), j + dfs(l, r - 1, i + 1));
  return re;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &e[i].v);
    e[i].id = i;
  }
  sort(e + 1, e + 1 + n);
  int l = 1, r = n;
  long long ans = 0;
  ans = dfs(1, n, 1);
  cout << ans;
  return 0;
}
