CF2103C.Median Splits

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

数组 b1,b2,…bmb_1, b_2, \ldots b_m 的中位数记作 med⁡(b1,b2,…,bm)\operatorname{med}(b_1, b_2, \ldots, b_m),定义为数组 bb 中第 ⌈m2⌉\left\lceil \frac{m}{2} \right\rceil 小的元素。

给定一个整数数组 a1,a2,…,ana_1, a_2, \ldots, a_n 和一个整数 kk。你需要判断是否存在一对下标 1≤l<r<n1 \le l < r < n 满足:

med⁡(med⁡(a1,a2…al),med⁡(al+1,al+2…ar),med⁡(ar+1,ar+2…an))≤k.\operatorname{med}(\operatorname{med}(a_1, a_2 \dots a_l), \operatorname{med}(a_{l + 1}, a_{l + 2} \dots a_r), \operatorname{med}(a_{r + 1}, a_{r + 2} \dots a_n)) \leq k.

换句话说,判断是否可以将数组分割为三个连续的子数组,使得这三个子数组中位数的中位数小于或等于 kk。

输入格式

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

每个测试用例的第一行包含两个整数 nn 和 kk(3≤n≤2⋅1053 \le n \le 2 \cdot 10^5,1≤k≤1091 \le k \le 10^9)——数组 aa 的长度和常数 kk。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)——数组 aa 的元素。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,如果存在满足条件的分割,输出 "YES",否则输出 "NO"。

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

输入输出样例

  • 输入#1

    6
    3 2
    3 2 1
    3 1
    3 2 1
    6 3
    8 5 3 1 6 4
    8 7
    10 7 12 16 3 15 6 11
    6 8
    7 11 12 4 9 17
    3 500000000
    1000 1000000000 1000

    输出#1

    YES
    NO
    NO
    YES
    YES
    YES

说明/提示

在第一个和第二个测试用例中,唯一可能的分割方式是将数组分为 [3][3]、[2][2]、[1][1]。它们的中位数分别是 33、22 和 11。这三个中位数的中位数是 med⁡(3,2,1)=2\operatorname{med}(3, 2, 1) = 2。因此,第一个测试用例的答案是 "YES"(因为 2≤22 \le 2),而第二个测试用例的答案是 "NO"(因为 2>12 > 1)。

在第三个测试用例中,可以证明不存在满足条件的分割。

在第四个测试用例中,一个满足条件的分割是 [10,7][10, 7]、[12,16,3,15][12, 16, 3, 15]、[6,11][6, 11]。子数组的中位数分别是 77、1212 和 66。这三个中位数的中位数是 med⁡(7,12,6)=7≤k\operatorname{med}(7, 12, 6) = 7 \le k,因此该分割满足条件。

在第五个测试用例中,一个满足条件的分割是 [7,11][7, 11]、[12,4][12, 4]、[9,17][9, 17]。子数组的中位数分别是 77、44 和 99。这三个中位数的中位数是 med⁡(7,4,9)=7≤k\operatorname{med}(7, 4, 9) = 7 \le k,因此该分割满足条件。

在第六个测试用例中,唯一可能的分割方式是将数组分为 [1000][1000]、[109][10^9]、[1000][1000]。子数组的中位数分别是 10001000、10910^9 和 10001000。这三个中位数的中位数是 med⁡(1000,109,1000)=1000≤k\operatorname{med}(1000, 10^9, 1000) = 1000 \le k,因此该分割满足条件。

翻译由 DeepSeek V3 完成

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

首页