Problem:
Score : 400 points

Problem Statement

You are given N integers; the i-th of them is A_i.
Find the maximum possible sum of the absolute differences between the adjacent elements after arranging these integers in a row in any order you like.

Constraints

2 \leq N \leq 10^5

1 \leq A_i \leq 10^9

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_1
:
A_N

Output

Print the maximum possible sum of the absolute differences between the adjacent elements after arranging the given integers in a row in any order you like.

Sample Input 1

5
6
8
1
2
3

Sample Output 1

21

When the integers are arranged as 3,8,1,6,2, the sum of the absolute differences between the adjacent elements is |3 - 8| + |8 - 1| + |1 - 6| + |6 - 2| = 21. This is the maximum possible sum.

Sample Input 2

6
3
1
4
1
5
9

Sample Output 2

25

Sample Input 3

3
5
5
1

Sample Output 3

8

Solution in Python (3.4.3) (judge verdict: Wrong Answer)

emp_list = []
answer_list = []

n = int(input())
for i in range(n):
    i = int(input())
    emp_list.append(i)
emp_list.sort()

def min_list(the_list):
    if len(the_list) > 0:
        x = the_list.pop(0)
        return x
    else:
        pass

def max_list(the_list):
    if len(the_list) > 0:
        x = the_list.pop()
        return x
    else:
        pass

m = min_list(emp_list)
answer_list.append(m)

while emp_list:
    ma = max_list(emp_list)
    answer_list.append(ma)
    if len(emp_list) == 0:
        break
    else:
        mb = max_list(emp_list)
        answer_list.insert(0,mb)
    if emp_list == 0:
        break
    else:
        na = min_list(emp_list)
        answer_list.append(na)
    if emp_list == 0:
        break
    else:
        nb = min_list(emp_list)
        answer_list.insert(0,nb)

x_list = answer_list[:]
x_list = [x for x in x_list if x]

y_list = x_list[1:]
y_list = [y for y in y_list if y]

cnt = 0
for xx,yy in zip(x_list,y_list):
    cnt += abs(xx - yy)

print(cnt)