CF2102B.The Picky Cat

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

  • 选择一个下标 ii(1≤i≤n1 \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 中元素的绝对值互不相同。形式化地说,不存在下标对 1≤i<j≤n1 \le i < j \le n 满足 ∣ai∣=∣aj∣|a_i| = |a_j|。

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

输入格式

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

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

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(∣ai∣≤106|a_i| \le 10^6,∣ai∣≠∣aj∣|a_i| \neq |a_j|)——数组 aa 的元素。

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

输出格式

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

你可以以任意大小写形式输出答案(例如字符串"yEs"、"yes"、"Yes"和"YES"都会被识别为肯定回答)。

输入输出样例

  • 输入#1

    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

    输出#1

    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。

在第四个测试用例中,可以证明不存在任何操作序列能使数组的中位数变为 55 或 −5-5。

翻译由 DeepSeek V3 完成

输入解题思路,AI测评打分。不知道怎么写?

首页