CF2102B The Picky Cat

题目描述

给定一个整数数组 $a_1, a_2, \ldots, a_n$。你可以执行以下操作任意次数(包括零次): - 选择一个下标 $i$($1 \le i \le n$)。将 $a_i$ 乘以 $-1$(即更新 $a_i := -a_i$)。 你的任务是判断是否可以通过上述操作使得下标为 $1$ 的元素成为数组的中位数。注意操作也可以应用于下标 $1$,这意味着中位数可以是 $a_1$ 的原值或其相反数。 数组 $b_1, b_2, \ldots, b_m$ 的中位数定义为数组中第 $\left\lceil \frac{m}{2} \right\rceil$ 小的元素 $^{\text{∗}}$。例如,数组 $[3, 1, 2]$ 的中位数是 $2$,而数组 $[10, 1, 8, 3]$ 的中位数是 $3$。 保证数组 $a$ 中元素的绝对值互不相同。形式化地说,不存在下标对 $1 \le i < j \le n$ 满足 $|a_i| = |a_j|$。 $^{\text{∗}}$ $\lceil x \rceil$ 是向上取整函数,返回大于等于 $x$ 的最小整数。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 $t$($1 \le t \le 10^4$)。接下来是各测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$)——数组 $a$ 的长度。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($|a_i| \le 10^6$,$|a_i| \neq |a_j|$)——数组 $a$ 的元素。 保证所有测试用例的 $n$ 之和不超过 $10^5$。

输出格式

对于每个测试用例,如果可以使下标为 $1$ 的元素成为数组的中位数,输出"YES",否则输出"NO"。 你可以以任意大小写形式输出答案(例如字符串"yEs"、"yes"、"Yes"和"YES"都会被识别为肯定回答)。

说明/提示

在第一个测试用例中,$a_1 = 2$ 已经是数组 $a = [2, 3, 1]$ 的中位数,因此不需要任何操作。 在第二个测试用例中,我们可以执行两次操作:一次在下标 $2$,一次在下标 $5$。数组变为 $[1, -2, 3, 4, -5]$,其中中位数为 $1$。 在第三个测试用例中,如果对下标 $1$ 执行操作,数组将变为 $[-4, 2, 0, -5]$,其中中位数为 $-4$。 在第四个测试用例中,可以证明不存在任何操作序列能使数组的中位数变为 $5$ 或 $-5$。 翻译由 DeepSeek V3 完成