← Home
package main

import (
	"fmt"
	"sort"
)

func main() {
	var t int
	fmt.Scan(&t)
	for ; t > 0; t-- {
		var n int
		fmt.Scan(&n)
		a := make([]int, n)
		sum := 0
		for i := 0; i < n; i++ {
			fmt.Scan(&a[i])
			sum += a[i]
		}
		if sum == 0 {
			fmt.Println("NO")
			continue
		}
		if sum > 0 {
			sort.Sort(sort.Reverse(sort.IntSlice(a)))
		} else {
			sort.Ints(a)
		}
		curr := 0
		good := true
		for i := 0; i < n; i++ {
			curr += a[i]
			if curr == 0 {
				good = false
				break
			}
		}
		if !good {
			if sum > 0 {
				sort.Ints(a)
			} else {
				sort.Sort(sort.Reverse(sort.IntSlice(a)))
			}
			curr = 0
			good = true
			for i := 0; i < n; i++ {
				curr += a[i]
				if curr == 0 {
					good = false
					break
				}
			}
			if !good {
				fmt.Println("NO")
				continue
			}
		}
		fmt.Println("YES")
		for i := 0; i < n; i++ {
			if i > 0 {
				fmt.Print(" ")
			}
			fmt.Print(a[i])
		}
		fmt.Println()
	}
}