#include<iostream>
#include<string>
#include<iomanip>
#include<cmath>
#include<vector>
#include<algorithm>
#include<utility>
#include<cstdlib>
#include<ctime>
#include <random>

using namespace std;

#define int long long
#define endl "\n"

constexpr long long INF = (long long)1e18;
constexpr long long MOD = 1'000'000'007; 

struct fast_io {
	fast_io(){
		std::cin.tie(nullptr);
		std::ios::sync_with_stdio(false);
	};
} ;
// } fio;

bool cal(vector<pair<int,int>> &A, int i, int j){
	
	int a = A[i].first * abs(A[i].second - i) + A[j].first * abs(A[j].second - j);
	int b = A[i].first * abs(A[i].second - j) + A[j].first * abs(A[j].second - i);
	
	return a <= b;
}

signed main(){
	cout<<fixed<<setprecision(10);
	
	int N;
	int r, l;
	int res = 0;
	vector<pair<int,int>> A;
	
	// srand(time(NULL));
	std::random_device rnd;   
    std::mt19937 mt(rnd()); 
	
	cin>>N;
	
	A.resize(N);
	
	 std::uniform_int_distribution<> ran(0, N-1);
	for(int i = 0; i < N; i++){
		cin>>A[i].first;
		A[i].second = i;
	}
	
	for(int i = 0; i < 1000000; i++){
		int a = ran(mt);
		int b = ran(mt);
		if(cal(A,a,b)) {
			swap(A[a],A[b]);
		}
		if(cal(A,0,b)) {
			swap(A[0],A[b]);
		}
		if(cal(A,N-1,b)) {
			swap(A[N-1],A[b]);
		}
	}
	
	// for(int i = 0; i < N; i++){
		// for(int j = 0; j <= i; j++){
			// int a = j, b = N + j - i-1;
			// for(int k = 0; k <= 1000; k++){
				// int c = ran(mt);
				// int d = ran(mt);
				// if(cal(A,a,c)) {
					// swap(A[a],A[c]);
				// }
				// if(cal(A,b,c)) {
					// swap(A[b],A[c]);
				// }
				// if(cal(A,d,c)) {
					// swap(A[d],A[c]);
				// }
			// }
		// }
	// }
	
	for(int i = 0; i < N; i++){
		res += abs(A[i].second - i) * A[i].first;
	}
	
	cout<<res<<endl;
	
	return 0;
}
