← Home
For problem statement at 2000-2999/2100-2199/2120-2129/2127/problemC.txt this is a correct solution, but verifier at 2000-2999/2100-2199/2120-2129/2127/verifierC.go ends with All 22 test cases passed. can you fix the verifier? ```go
package main

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

func main() {
	in := bufio.NewReader(os.Stdin)
	var t int
	fmt.Fscan(in, &t)
	for i := 0; i < t; i++ {
		var n, k int
		fmt.Fscan(in, &n, &k)
		a := make([]int64, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
		}
		b := make([]int64, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &b[i])
		}
		type interval struct {
			x, y int64
		}
		intervals := make([]interval, n)
		var original int64 = 0
		for i := 0; i < n; i++ {
			minv := a[i]
			maxv := b[i]
			if minv > maxv {
				minv, maxv = maxv, minv
			}
			intervals[i] = interval{minv, maxv}
			original += maxv - minv
		}
		sort.Slice(intervals, func(i, j int) bool {
			return intervals[i].x < intervals[j].x
		})
		hasOverlap := false
		var minGap int64 = 1 << 60
		for i := 0; i < n-1; i++ {
			if intervals[i].y >= intervals[i+1].x {
				hasOverlap = true
			} else {
				gap := intervals[i+1].x - intervals[i].y
				if gap < minGap {
					minGap = gap
				}
			}
		}
		var ans int64
		if hasOverlap {
			ans = original
		} else {
			ans = original + 2*minGap
		}
		fmt.Println(ans)
	}
}
```