← Home
For problem statement at 1000-1999/1600-1699/1680-1689/1685/problemA.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1680-1689/1685/verifierA.go ends with case 8 failed
input:
1
6
13 7 18 4 19 13
expected:NO
actual:YES
4 13 7 18 13 19
exit status 1 can you fix the verifier? package main

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

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

	var t int
	fmt.Fscan(reader, &t)

	for i := 0; i < t; i++ {
		var n int
		fmt.Fscan(reader, &n)

		a := make([]int, n)
		for j := 0; j < n; j++ {
			fmt.Fscan(reader, &a[j])
		}

		if n%2 != 0 {
			fmt.Fprintln(writer, "NO")
			continue
		}

		sort.Ints(a)
		half := n / 2
		b := make([]int, n)
		for j := 0; j < half; j++ {
			b[2*j] = a[j]
			b[2*j+1] = a[half+j]
		}

		possible := true
		for j := 0; j < n; j++ {
			prev := b[(j-1+n)%n]
			next := b[(j+1)%n]
			if (b[j] > prev && b[j] > next) || (b[j] < prev && b[j] < next) {
				continue
			}
			possible = false
			break
		}

		if possible {
			fmt.Fprintln(writer, "YES")
			for j := 0; j < n; j++ {
				if j > 0 {
					fmt.Fprint(writer, " ")
				}
				fmt.Fprint(writer, b[j])
			}
			fmt.Fprintln(writer)
		} else {
			fmt.Fprintln(writer, "NO")
		}
	}
}