```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
scanner := bufio.NewReader(os.Stdin)
var n int
fmt.Fscan(scanner, &n)
a := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(scanner, &a[i])
}
b := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(scanner, &b[i])
}
sort.Slice(a, func(i, j int) bool { return a[i] > a[j] })
sort.Slice(b, func(i, j int) bool { return b[i] > b[j] })
i, j := 0, 0
diff := 0
turn := 0
for i < n || j < n {
if turn == 0 {
if i < n && (j >= n || a[i] >= b[j]) {
diff += a[i]
i++
} else if j < n {
j++
}
} else {
if j < n && (i >= n || b[j] >= a[i]) {
diff -= b[j]
j++
} else if i < n {
i++
}
}
turn ^= 1
}
fmt.Println(diff)
}
```