← Home
```go
package main

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

func abs(x int64) int64 {
	if x < 0 {
		return -x
	}
	return x
}

func main() {
	in := bufio.NewReader(os.Stdin)
	var t int
	fmt.Fscan(in, &t)
	for _ = range t {
		var n int
		fmt.Fscan(in, &n)
		a := make([]int64, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
		}
		possible_m := []int64{a[0], -a[0]}
		k := (n + 1) / 2
		need := k - 1
		ans := "NO"
		for _, m := range possible_m {
			var A, C int
			for i := 1; i < n; i++ {
				var pj int64 = abs(a[i])
				if pj == 0 {
					if int64(0) < m {
						A++
					}
				} else {
					vneg := -pj
					vpos := pj
					num_less := 0
					if vneg < m {
						num_less++
					}
					if vpos < m {
						num_less++
					}
					if num_less == 2 {
						A++
					} else if num_less == 1 {
						C++
					}
				}
			}
			min_p := A
			max_p := A + C
			if need >= min_p && need <= max_p {
				ans = "YES"
				break
			}
		}
		fmt.Println(ans)
	}
}
```