CF2102B.The Picky Cat

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

The Picky Cat

题目描述

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

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

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

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

保证数组 aa 中元素的绝对值互不相同。形式化地说,不存在下标对 1i<jn1 \le i < j \le n 满足 ai=aj|a_i| = |a_j|

^{\text{∗}} x\lceil x \rceil 是向上取整函数,返回大于等于 xx 的最小整数。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt1t1041 \le t \le 10^4)。接下来是各测试用例的描述。

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

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

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

输出格式

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

你可以以任意大小写形式输出答案(例如字符串"yEs"、"yes"、"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

翻译由 DeepSeek V3 完成

样例

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

在线编程 IDE

建议全屏模式获得最佳体验