#include <bits/stdc++.h>
using namespace std;
struct info {
  long long value;
  int origin_pos;
  int move_pos;
};
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int N;
  cin >> N;
  vector<info> a_list;
  for (int i = 0; i < N; i++) {
    long long a;
    cin >> a;
    for (int j = 0; j < N; j++) {
      if (i == j) continue;
      long long dist = abs(i - j);
      info newinfo;
      newinfo.value = a * dist;
      newinfo.origin_pos = i;
      newinfo.move_pos = j;
      a_list.push_back(newinfo);
    }
  }
  sort(a_list.begin(), a_list.end(),
       [](const info& l, const info& r) { return l.value > r.value; });
  vector<bool> check_origin(N, false);
  vector<bool> check_move(N, false);
  long long result = 0;
  for (int i = 0; i < a_list.size(); i++) {
    if (!check_origin[a_list[i].origin_pos] &&
        !check_move[a_list[i].move_pos]) {
      check_origin[a_list[i].origin_pos] = true;
      check_move[a_list[i].move_pos] = true;
      result += a_list[i].value;
    }
  }
  cout << result;
  return 0;
}
