CF2102B.The Picky Cat
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个整数数组 a1,a2,…,an。你可以执行以下操作任意次数(包括零次):
- 选择一个下标 i(1≤i≤n)。将 ai 乘以 −1(即更新 ai:=−ai)。
你的任务是判断是否可以通过上述操作使得下标为 1 的元素成为数组的中位数。注意操作也可以应用于下标 1,这意味着中位数可以是 a1 的原值或其相反数。
数组 b1,b2,…,bm 的中位数定义为数组中第 ⌈2m⌉ 小的元素 ∗。例如,数组 [3,1,2] 的中位数是 2,而数组 [10,1,8,3] 的中位数是 3。
保证数组 a 中元素的绝对值互不相同。形式化地说,不存在下标对 1≤i<j≤n 满足 ∣ai∣=∣aj∣。
∗ ⌈x⌉ 是向上取整函数,返回大于等于 x 的最小整数。
输入格式
每个测试包含多个测试用例。第一行输入测试用例数量 t(1≤t≤104)。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤105)——数组 a 的长度。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(∣ai∣≤106,∣ai∣=∣aj∣)——数组 a 的元素。
保证所有测试用例的 n 之和不超过 105。
输出格式
对于每个测试用例,如果可以使下标为 1 的元素成为数组的中位数,输出"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=2 已经是数组 a=[2,3,1] 的中位数,因此不需要任何操作。
在第二个测试用例中,我们可以执行两次操作:一次在下标 2,一次在下标 5。数组变为 [1,−2,3,4,−5],其中中位数为 1。
在第三个测试用例中,如果对下标 1 执行操作,数组将变为 [−4,2,0,−5],其中中位数为 −4。
在第四个测试用例中,可以证明不存在任何操作序列能使数组的中位数变为 5 或 −5。
翻译由 DeepSeek V3 完成
输入解题思路,AI测评打分。不知道怎么写?