#HK5222. 「UOI 2023 Stage 4 Day2」数组与子数组中位数

「UOI 2023 Stage 4 Day2」数组与子数组中位数

题目描述

题目译自 Ukrainian Olympiads in Informatics 2023 Stage 4 Day2 T1. Масив і медіани підмасивів

我们定义长度为 (2k+1)(2 \cdot k + 1) 的数组的中位数为在数组按非降序排序后位于第 (k+1)(k + 1) 位的数字。例如,数组 [1][1][4,2,5][4, 2, 5][6,5,1,2,3][6, 5, 1, 2, 3] 的中位数分别是 114433

给定一个偶数长度的整数数组 aa,长度为 nn

你需要判断是否可以将数组 aa 划分为若干个奇数长度的子数组,使得这些子数组的中位数两两相等。

形式上,需要判断是否存在一个整数序列 i1,i2,,iki_1, i_2, \ldots, i_k,满足以下条件:

  • 1=i1<i2<<ik=(n+1)1 = i_1 < i_2 < \ldots < i_k = (n + 1)
  • $(i_2 - i_1) \bmod 2 = (i_3 - i_2) \bmod 2 = \ldots = (i_k - i_{k-1}) \bmod 2 = 1$;
  • $f(a[i_1..(i_2-1)]) = f(a[i_2..(i_3-1)]) = \ldots = f(a[i_{k-1}..(i_k-1)])$,其中 a[l..r]a[l..r] 表示由元素 al,al+1,,ara_l, a_{l+1}, \ldots, a_r 组成的子数组,f(a)f(a) 表示数组 aa 的中位数。

输入格式

输入的第一行包含一个偶数 nn (2n2105)(2 \le n \le 2 \cdot 10^5),表示数组的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (1ai109)(1 \le a_i \le 10^9),表示数组的元素。

保证 nn 为偶数。

输出格式

如果可以将数组 aa 划分为若干个奇数长度的子数组,使得这些子数组的中位数两两相等,则输出 Yes;否则输出 No

4
1 1 1 1

Yes

在第一个样例中,数组 [1,1,1,1][1, 1, 1, 1] 可以划分为子数组 [1][1][1,1,1][1, 1, 1],它们的中位数均为 11

6
1 2 3 3 2 1

Yes

在第二个样例中,数组 [1,2,3,3,2,1][1, 2, 3, 3, 2, 1] 可以划分为子数组 [1,2,3][1, 2, 3][3,2,1][3, 2, 1],它们的中位数均为 22

6
1 2 1 3 2 3

No

在第三个样例中,数组 [1,2,1,3,2,3][1, 2, 1, 3, 2, 3] 无法划分为若干个奇数长度的子数组使得中位数相等。

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 33 n=2n=2
22 1414 1ai21 \le a_i \le 2(对于 1in1 \le i \le n
33 1212 aiai+1a_i \le a_{i+1}(对于 1i<n1 \le i < n
44 1616 1ai31 \le a_i \le 3(对于 1in1 \le i \le n);每个值在 aa 中出现次数不超过 n/2n/2
55 1717 n100n \le 100
66 1818 n2000n \le 2000
77 2020 无附加限制