← Home
For problem statement at 1000-1999/1700-1799/1790-1799/1798/problemD.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1790-1799/1798/verifierD.go ends with reference failed: exec: "refD_bin": executable file not found in $PATH can you fix the verifier? ```go
package main

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	scanner := bufio.NewScanner(reader)
	scanner.Split(bufio.ScanWords)
	scanner.Buffer(make([]byte, 2048*1024), 2048*1024)

	if !scanner.Scan() {
		return
	}
	t, _ := strconv.Atoi(scanner.Text())

	for i := 0; i < t; i++ {
		if !scanner.Scan() {
			break
		}
		n, _ := strconv.Atoi(scanner.Text())

		nonZeros := make([]int, 0, n)
		zeroCount := 0

		for j := 0; j < n; j++ {
			scanner.Scan()
			val, _ := strconv.Atoi(scanner.Text())
			if val == 0 {
				zeroCount++
			} else {
				nonZeros = append(nonZeros, val)
			}
		}

		if len(nonZeros) == 0 {
			fmt.Fprintln(writer, "No")
			continue
		}

		fmt.Fprintln(writer, "Yes")
		sort.Ints(nonZeros)

		l, r := 0, len(nonZeros)-1
		cur := int64(0)
		first := true

		for l <= r {
			if !first {
				writer.WriteByte(' ')
			}
			first = false

			var val int
			if cur > 0 {
				val = nonZeros[l]
				l++
			} else {
				val = nonZeros[r]
				r--
			}
			cur += int64(val)
			writer.WriteString(strconv.Itoa(val))
		}

		for j := 0; j < zeroCount; j++ {
			if !first {
				writer.WriteByte(' ')
			}
			first = false
			writer.WriteByte('0')
		}
		writer.WriteByte('\n')
	}
}
```