Problem:
Score : 200 points

Problem Statement

There are N gems. The value of the i-th gem is V_i.

You will choose some of these gems, possibly all or none, and get them.

However, you need to pay a cost of C_i to get the i-th gem.

Let X be the sum of the values of the gems obtained, and Y be the sum of the costs paid.

Find the maximum possible value of X-Y.

Constraints

All values in input are integers.

1 \leq N \leq 20

1 \leq C_i, V_i \leq 50

Input

Input is given from Standard Input in the following format:

N
V_1 V_2 ... V_N
C_1 C_2 ... C_N

Output

Print the maximum possible value of X-Y.

Sample Input 1

3
10 2 5
6 3 4

Sample Output 1

5

If we choose the first and third gems, X = 10 + 5 = 15 and Y = 6 + 4 = 10.
We have X-Y = 5 here, which is the maximum possible value.

Sample Input 2

4
13 21 6 19
11 30 6 15

Sample Output 2

6

Sample Input 3

1
1
50

Sample Output 3

0

Solution in Go (1.6) (judge verdict: Accepted)

package main

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

// Diff has diff value
type Diff struct {
	value int
}

// Diffs are slice of Diff
type Diffs []Diff

// Len return length
func (d Diffs) Len() int {
	return len(d)
}

// Swap is swapping
func (d Diffs) Swap(i, j int) {
	d[j], d[i] = d[i], d[j]
}

// Less compares values
func (d Diffs) Less(i, j int) bool {
	return d[i].value > d[j].value
}
func main() {
	reader := bufio.NewReader(os.Stdin)
	tmp, _ := reader.ReadString('\n')
	tmp = strings.Trim(tmp, "\n")
	N, _ := strconv.Atoi(tmp)

	tmp, _ = reader.ReadString('\n')
	tmp = strings.Trim(tmp, "\n")
	tmpV := strings.Split(tmp, " ")
	v := make([]int, N)
	for i, sv := range tmpV {
		t, ok := strconv.Atoi(sv)
		if ok == nil {
			v[i] = t
		}
	}

	tmp, _ = reader.ReadString('\n')
	tmp = strings.Trim(tmp, "\n")
	tmpC := strings.Split(tmp, " ")
	var diffs Diffs

	for i, sc := range tmpC {
		t, ok := strconv.Atoi(sc)
		if ok == nil {
			diffs = append(diffs, Diff{value: v[i] - t})
		}
	}

	sort.Sort(diffs)

	var s int
	for i := range diffs {
		if diffs[i].value > 0 {
			s += diffs[i].value
		}
	}
	fmt.Println(s)
}