""" https://yukicoder.me/problems/no/972 aはソートしておく 偶数個選ぶとき、中央値計算に使う2要素の右を削除すると 右半分 -> 正であり、絶対値増える 左半分 -> 負であり、絶対値が減る 消した要素の収支分、その左要素がカバーするので絶対ok 奇数のサイズのみを考えればok 中央値を a[i] と決め撃つと a[i-k], ... , a[i-1] , a[i] a[N-1-k], ... , a[N-1] と選ぶのが最適 kをk-1から増やしたときの収支は (a[i-k] - a[i]) + (a[N-1-k] - a[i]) であり、 左項はkに対して単調減少。右も単調減少。 収支が負にならないkを二分探索すればok """ import sys from sys import stdin N = int(stdin.readline()) a = list(map(int,stdin.readline().split())) a.sort() s = [] for i in range(N): if i == 0: s.append(a[i]) else: s.append(s[-1] + a[i]) s.append(0) ans = 0 for midx in range(N): L = 0 R = min(midx,N-1-midx) + 1 while R-L != 1: M = (L+R)//2 if (a[i-M] - a[midx]) + (a[N-M]-a[midx]) > 0: L = M else: R = M sum1 = s[midx] - s[midx-L-1] sum2 = s[N-1] - s[N-1-L] now = sum1 + sum2 - (2*L+1)*a[midx] # print (midx,L,sum1,sum2) ans = max(now,ans) print (ans)