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 C (GCC 5.4.1) (judge verdict: Accepted)

#define rep(i,n) fo(i,0,n)
#define fo(i,s,n) for((i)=(s);(i)<(n);(i)++)
#define scan(k) scanf("%d",&k)
#define PI 3.14159265359
#define INF (ll)(2e18+100)
#define MOD (int)(1e9+7)
#define MAX 10000
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef long long ll;

int comp( const void *c1, const void *c2 )
{
  int tmp1 = *(int *)c1;
  int tmp2 = *(int *)c2;

  if( tmp1 < tmp2 )  return -1;
  if( tmp1 == tmp2 ) return  0;
  if( tmp1 > tmp2 )  return  1;
}

int main(void){
	int n;
	int l[500];
	int i;
	scan(n);
	rep(i,500){
		l[i]=0;
	}
	rep(i,2*n){
		scan(l[i]);
	}
	qsort(l,500,sizeof(int),comp);
	int ans=0;
	for(i=0;i<500;i+=2){
		ans+=l[i];
	}
	printf("%d\n",ans);
	return 0;
}