```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
buf := make([]byte, 65536)
var pos, length int
read := func() byte {
if pos >= length {
pos = 0
length, _ = os.Stdin.Read(buf)
if length == 0 {
return 0
}
}
b := buf[pos]
pos++
return b
}
readInt := func() int64 {
var res int64
b := read()
for b <= 32 {
if b == 0 {
return 0
}
b = read()
}
for b > 32 {
res = res*10 + int64(b-'0')
b = read()
}
return res
}
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
t := int(readInt())
var a []int64
for test := 0; test < t; test++ {
n := int(readInt())
if cap(a) < n {
a = make([]int64, n)
}
a = a[:n]
for i := 0; i < n; i++ {
a[i] = readInt()
}
var ans int64 = 0
var maxMin int64 = -1
var minMax int64 = 2000000000
for i := 0; i < n; i++ {
bi := readInt()
var cMin, cMax int64
if a[i] < bi {
cMin, cMax = a[i], bi
} else {
cMin, cMax = bi, a[i]
}
ans += cMax - cMin
if cMin > maxMin {
maxMin = cMin
}
if cMax < minMax {
minMax = cMax
}
}
if maxMin > minMax {
ans += 2 * (maxMin - minMax)
}
fmt.Fprintln(out, ans)
}
}
```