#CF2102B. 挑剔的猫

挑剔的猫

题目描述

时间限制11
内存限制256256 兆字节

给定一个整数数组 a1,a2,,ana_1, a_2, \ldots, a_n。你可以进行以下操作任意多次(包括零次):

  • 选择一个下标 ii1in1 \leq i \leq n),将 aia_i 乘以 1-1(即更新 ai:=aia_i := -a_i)。

你的任务是判断是否可以通过进行任意次上述操作,使得位于下标 11 的元素成为数组的中位数。注意,操作也可以应用于下标 11,这意味着中位数可以是 a1a_1 的原始值或其相反数。

数组 b1,b2,,bmb_1, b_2, \ldots, b_m 的中位数定义为数组 bb 中第 m2\lceil \frac{m}{2} \rceil 小的元素。例如,数组 [3,1,2][3, 1, 2] 的中位数是 22,而数组 [10,1,8,3][10, 1, 8, 3] 的中位数是 33

保证数组中元素的绝对值互不相同。即,不存在一对下标 1i<jn1 \leq i < j \leq n 使得 ai=aj|a_i| = |a_j|


输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n1051 \leq n \leq 10^5)—— 数组 aa 的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_nai106|a_i| \leq 10^6aiaj|a_i| \neq |a_j|)—— 数组 aa 的元素。

保证所有测试用例的 nn 之和不超过 10510^5


输出格式

对于每个测试用例,如果可以通过操作使得下标 11 的元素成为数组的中位数,则输出 "YES",否则输出 "NO"

你可以以任意大小写输出答案(例如,"yEs""yes""Yes""YES" 都会被识别为肯定回答)。


示例

输入

7
3
2 3 1
5
1 2 3 4 5
4
4 2 0 -5
4
-5 0 4 3
4
-10 8 3 2
1
1
10
9 1000 -999 -13 456 -223 23 24 10 0

输出

YES
YES
YES
NO
NO
YES
YES

说明

  • 第一个测试用例:a1=2a_1 = 2 已经是数组 a=[2,3,1]a = [2, 3, 1] 的中位数,因此不需要进行操作。

  • 第二个测试用例:我们可以进行两次操作:一次在下标 22,一次在下标 55。数组变为 [1,2,3,4,5][1, -2, 3, 4, -5],其中位数为 11

  • 第三个测试用例:如果对下标 11 进行操作,数组将变为 [4,2,0,5][-4, 2, 0, -5],其中位数为 4-4

  • 第四个测试用例:可以证明,无论进行多少次操作,都无法使数组的中位数变为 555-5

  • 第五个测试用例:可以证明,无法使中位数变为 a1=10a_1 = -10 或其相反数 1010

  • 第六个测试用例:n=1n = 1 时,唯一的元素就是中位数,因此答案是 "YES"

  • 第七个测试用例:存在一种操作方案使得 a1=9a_1 = 9 成为中位数。