#!/usr/bin/env python3
# from typing import *

import sys
import io
import math
import collections
import decimal
import itertools
import bisect
import heapq


def input():
    return sys.stdin.readline()[:-1]

# sys.setrecursionlimit(1000000)

# _INPUT = """5
# 1 2 3 4 5
# """
# sys.stdin = io.StringIO(_INPUT)

INF = 10**10

def check1(i, k):
    v = A[i-k] + A[N-k] - A[i]*2
    return (v > 0)

def check2(i, k):
    v = A[i-k] + A[N-k] - (A[i] + A[i+1])
    return (v > 0)


N = int(input())
A = list(map(int, input().split()))
A.sort()
S = [0] + list(itertools.accumulate(A))

score_max = 0

# 奇数個数の部分列
for i in range(1, N-1):
    ok = 0
    ng = min(i, N-1-i) + 1
    while ng - ok > 1:
        mid = (ok+ng)//2
        if check1(i, mid):
            ok = mid
        else:
            ng = mid
    k = ok
    score = (S[i]-S[i-k]) + (S[N]-S[N-k]) - 2*k*A[i]
    score_max = max(score_max, score)

# 偶数個数の部分列
for i in range(1, N-2):
    ok = 0
    ng = min(i, N-2-i) + 1
    while ng - ok > 1:
        mid = (ok+ng)//2
        if check2(i, mid):
            ok = mid
        else:
            ng = mid
    k = ok
    score = (S[i]-S[i-k]) + (S[N]-S[N-k]) - k*(A[i]+A[i+1])
    score_max = max(score_max, score)



print(score_max)