← Home
For problem statement at 1000-1999/1700-1799/1760-1769/1765/problemJ.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1760-1769/1765/verifierJ.go ends with test 2 failed: expected 9 but got 13
input:
3
1 3 5
2 4 6

expected:
9
actual:
13

exit status 1 can you fix the verifier? ```go
package main

import (
	"fmt"
	"io"
	"os"
	"sort"
)

type Scanner struct {
	buf []byte
	pos int
}

func NewScanner() *Scanner {
	b, _ := io.ReadAll(os.Stdin)
	return &Scanner{buf: b, pos: 0}
}

func (s *Scanner) nextInt() int {
	for s.pos < len(s.buf) && s.buf[s.pos] <= ' ' {
		s.pos++
	}
	if s.pos >= len(s.buf) {
		return 0
	}
	res := 0
	for s.pos < len(s.buf) && s.buf[s.pos] > ' ' {
		res = res*10 + int(s.buf[s.pos]-'0')
		s.pos++
	}
	return res
}

func main() {
	sc := NewScanner()
	n := sc.nextInt()
	if n == 0 {
		return
	}
	A := make([]int, n)
	for i := 0; i < n; i++ {
		A[i] = sc.nextInt()
	}
	B := make([]int, n)
	for i := 0; i < n; i++ {
		B[i] = sc.nextInt()
	}

	sort.Ints(A)
	sort.Ints(B)

	prefB := make([]int64, n+1)
	for i := 0; i < n; i++ {
		prefB[i+1] = prefB[i] + int64(B[i])
	}

	var S, M int64
	j := 0
	for i := 0; i < n; i++ {
		for j < n && B[j] <= A[i] {
			j++
		}
		term1 := int64(j)*int64(A[i]) - prefB[j]
		term2 := (prefB[n] - prefB[j]) - int64(n-j)*int64(A[i])
		S += term1 + term2

		diff := int64(A[i]) - int64(B[i])
		if diff < 0 {
			diff = -diff
		}
		M += diff
	}

	ans := S - int64(n-1)*M
	fmt.Println(ans)
}
```