#include <bits/stdc++.h>
using namespace std;
const int M = 2010;
int n, a[M], ans;
bool vis[M];
int get_max() {
  int re, mx = -1;
  for (int i = 0; i < n; i++)
    if (!vis[i] && mx < a[i]) re = i, mx = a[i];
  return re;
}
int Dis(int x, int y) { return abs(x - y); }
long long dfs(int x, int l, int r) {
  if (x == n) return 0;
  int pos = get_max();
  int d1 = Dis(l, pos);
  int d2 = Dis(r, pos);
  long long ans = 0;
  vis[pos] = 1;
  if (d1 == d2) {
    int tmp1 = dfs(x + 1, l + 1, r);
    int tmp2 = dfs(x + 1, l, r - 1);
    if (tmp1 > tmp2)
      ans += tmp1 + d1 * a[pos];
    else
      ans += tmp2 + d2 * a[pos];
  } else if (d1 > d2)
    ans += dfs(x + 1, l + 1, r) + d1 * a[pos];
  else
    ans += dfs(x + 1, l, r - 1) + d2 * a[pos];
  return ans;
}
int main() {
  scanf("%d", &n);
  int l = 0, r = n - 1;
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  printf("%lld\n", dfs(0, l, r));
  return 0;
}
