← Home
```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)
	}
}
```