#include <bits/stdc++.h>
using namespace std;
const long long maxx = 1e6 + 7;
const long long mod = 1e9 + 7;
const long long base = 311;
const long long base1 = 113;
long long t, T, n, m, k, tong, r, ans, mx, mn, x, y;
string s, s1, s2, ss;
long long a[maxx], b[maxx], pw[maxx], pw1[maxx], st[maxx], st1[maxx],
    f[2002][2002];
bool check(long long v) {
  if (v < 2) return false;
  for (int i = 2; i <= v / i; i++)
    if (v % i == 0) return false;
  return true;
}
long long hs(long long hh[maxx], long long pw[maxx], long long i, long long j) {
  return (hh[j] - hh[i - 1] * pw[j - i + 1] + maxx * maxx) % maxx;
}
struct mm {
  long long val;
  long long pos;
};
mm c[maxx];
bool lf(const mm &x, const mm &y) {
  return (x.val < y.val) || (x.val == y.val && x.pos < y.pos);
}
void mxx(long long i, long long t) {
  if (i > n) {
    ans = max(t, ans);
  } else {
    for (int j = 1; j <= n; j++) {
      if (b[j] == 0) {
        b[j] = 1;
        mxx(i + 1, t + f[i][j]);
        b[j] = 0;
      }
    }
  }
}
void sol() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      f[i][j] = a[i] * abs(j - i);
    }
  }
  ans = 0;
  mxx(1, 0);
  cout << ans;
}
int main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(0);
  sol();
}
