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 JavaScript (node.js v5.12) (judge verdict: Wrong Answer)

function diff(arr) {
    var sum = 0
    for (var i = 1; i < arr.length; i++) {
        sum += Math.abs(Number(arr[i]) - Number(arr[i-1]))
    }
    return sum
}

function main(arg) {
    arg = arg.split("\n")
    var N = Number(arg.shift())
    var result = []
    
    arg = arg.map(e => Number(e))
    arg.sort(function(a, b) {
      return a - b;
    });
    // console.log(arg)
    
    result.push(arg.shift())
    
    while(1) {
        if (arg.length === 0) {
            break;
        }
        // result.push(arg.pop())
        result.unshift(arg.pop())
        
        if (arg.length === 0) {
            break;
        }
        // result.unshift(arg.pop())
        result.push(arg.pop())
        
        if (arg.length === 0) {
            break;
        }
        // result.push(arg.shift())
        result.unshift(arg.shift())
        
        if (arg.length === 0) {
            break;
        }
        // result.unshift(arg.shift())
        result.push(arg.shift())
    }
    console.log(diff(result))
    
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));