Problem:
Score: 200 points

Problem Statement

We have N cards. A number a_i is written on the i-th card.

Alice and Bob will play a game using these cards. In this game, Alice and Bob alternately take one card. Alice goes first.

The game ends when all the cards are taken by the two players, and the score of each player is the sum of the numbers written on the cards he/she has taken. When both players take the optimal strategy to maximize their scores, find Alice's score minus Bob's score.

Constraints

N is an integer between 1 and 100 (inclusive).

a_i \ (1 \leq i \leq N) is an integer between 1 and 100 (inclusive).

Input

Input is given from Standard Input in the following format:

N
a_1 a_2 a_3 ... a_N

Output

Print Alice's score minus Bob's score when both players take the optimal strategy to maximize their scores.

Sample Input 1

2
3 1

Sample Output 1

2

First, Alice will take the card with 3. Then, Bob will take the card with 1.
The difference of their scores will be 3 - 1 = 2.

Sample Input 2

3
2 7 4

Sample Output 2

5

First, Alice will take the card with 7. Then, Bob will take the card with 4. Lastly, Alice will take the card with 2. The difference of their scores will be 7 - 4 + 2 = 5. The difference of their scores will be 3 - 1 = 2.

Sample Input 3

4
20 18 2 18

Sample Output 3

18

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Wrong Answer)

import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try(Scanner scan = new Scanner(System.in)){
			int N = Integer.parseInt(scan.next());//標準入力の数
			List<Integer> list = new ArrayList<Integer>();//標準入力格納リスト
			for(int i=0; i<N; i++) {//入力内容をリストに格納
				list.add(Integer.parseInt(scan.next()));
			}
			int turn = 1; // 1:Alice , -1:Bob
			List<Integer> aliceCard = new ArrayList<Integer>();//Alice's Card
			List<Integer> bobCard = new ArrayList<Integer>();// Bob's Card
			
			while(list.size() > 0) {
				int currentMax = getMax(list);
				if(turn == 1) {
					aliceCard.add(currentMax);
				}else{
					bobCard.add(currentMax);
				}
              	turn = turn * -1;
				deleteMax(list, currentMax);
			}
			int aliceSum = getSum(aliceCard);
			int bobSum = getSum(bobCard);
			System.out.println(aliceSum - bobSum);
		}
	}
	public static int getMax(List<Integer> list) {
		int max = 0;
		for(int num: list) {
			if(num > max) {
				max = num;
			}
		}
		return max;
	}
	 public static void deleteMax(List<Integer> list, int max) {
		 Iterator<Integer> ite = list.iterator();
		 while(ite.hasNext()) {
			 int elm = ite.next();
			 if(elm == max) {
				 ite.remove();
			 }
		 }
	 }
	 public static int getSum(List<Integer> list) {
		 int sum = 0;
		 for(int elm: list) {
			 sum = sum + elm;
		 }
		 return sum;
	 }
}