For problem statement at 1000-1999/1700-1799/1760-1769/1765/problemD.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1760-1769/1765/verifierD.go ends with All 80 tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func readInt(r *bufio.Reader) int64 {
var n int64
var c byte
var err error
for {
c, err = r.ReadByte()
if err != nil || (c >= '0' && c <= '9') {
break
}
}
if err != nil {
return 0
}
n = int64(c - '0')
for {
c, err = r.ReadByte()
if err != nil || c < '0' || c > '9' {
break
}
n = n*10 + int64(c-'0')
}
return n
}
func main() {
r := bufio.NewReaderSize(os.Stdin, 65536)
n := int(readInt(r))
if n == 0 {
return
}
m := readInt(r)
a := make([]int64, n)
var sum_a int64
for i := 0; i < n; i++ {
a[i] = readInt(r)
sum_a += a[i]
}
sort.Slice(a, func(i, j int) bool {
return a[i] < a[j]
})
var S []int64
var L_desc []int64
for _, x := range a {
if x*2 <= m {
S = append(S, x)
}
}
for i := len(a) - 1; i >= len(S); i-- {
L_desc = append(L_desc, a[i])
}
var C []int64
if len(S) > 0 {
C = make([]int64, 0, len(S)+1)
C = append(C, m-S[0])
for i := 1; i < len(S); i++ {
C = append(C, m-S[i])
}
C = append(C, m-S[len(S)-1])
}
M := 0
i, j := 0, 0
for i < len(L_desc) && j < len(C) {
if L_desc[i] <= C[j] {
M++
i++
j++
} else {
i++
}
}
max_edges := 0
if len(S) > 0 {
max_edges = len(S) - 1 + M
}
ans := sum_a + int64(n) - int64(max_edges)
fmt.Println(ans)
}
```