Problem:
Score : 200 points

Problem Statement

Snuke is having a barbeque party.

At the party, he will make N servings of Skewer Meal.

Example of a serving of Skewer Meal

He has a stock of 2N skewers, all of which will be used in Skewer Meal. The length of the i-th skewer is L_i.
Also, he has an infinite supply of ingredients.

To make a serving of Skewer Meal, he picks 2 skewers and threads ingredients onto those skewers.
Let the length of the shorter skewer be x, then the serving can hold the maximum of x ingredients.

What is the maximum total number of ingredients that his N servings of Skewer Meal can hold, if he uses the skewers optimally?

Constraints

1≦N≦100

1≦L_i≦100

For each i, L_i is an integer.

Input

The input is given from Standard Input in the following format:

N
L_1 L_2 ... L_{2N}

Output

Print the maximum total number of ingredients that Snuke's N servings of Skewer Meal can hold.

Sample Input 1

2
1 3 1 2

Sample Output 1

3

If he makes a serving using the first and third skewers, and another using the second and fourth skewers, each serving will hold 1 and 2 ingredients, for the total of 3.

Sample Input 2

5
100 1 2 3 14 15 58 58 58 29

Sample Output 2

135

Solution in Go (1.6) (judge verdict: Wrong Answer)

package main

import (
	"bufio"
	"fmt"
	"math"
	"os"
	"sort"
	"strconv"
	"strings"
)

var reader = bufio.NewReader(os.Stdin)

func readNum() int {
	var str, _ = reader.ReadString('\n')
	var trimmed = strings.TrimSpace(str)
	var i, _ = strconv.Atoi(trimmed)
	return i
}

func leadSplit() []string {
	var str, _ = reader.ReadString('\n')
	var trimmed = strings.TrimSpace(str)
	var values = strings.Split(trimmed, " ")
	return values
}

func toNum(str string) int {
	var s, _ = strconv.Atoi(str)
	return s
}

func toInts(strs []string) []int {
	var results = make([]int, 0)
	for _, v := range strs {
		results = append(results, toNum(v))
	}
	return results
}

func main() {
	var N = readNum()
	var lengths = make([]int, 0)
	for _, v := range leadSplit() {
		lengths = append(lengths, toNum(v))
	}
	sort.Ints(lengths)
	var total int = 0
	for i := 0; i < 2 * N; i += 2 {
		var min = lengths[i]
		var max = lengths[i+1]
		total += int(math.Abs(float64(min - max)))
	}
	fmt.Println(total)
}