#ATarc101b. [ABC107D] Median of Medians

[ABC107D] Median of Medians

题目描述

长度为 MM 的数列 bb中位数定义如下:

  • bb 按升序排序得到数列 bb'。此时,bb' 的第 M / 2 + 1M\ /\ 2\ +\ 1 个元素的值即为 bb 的中位数。这里,// 表示向下取整的除法。

例如,(10, 30, 20)(10,\ 30,\ 20) 的中位数是 2020(10, 30, 20, 40)(10,\ 30,\ 20,\ 40) 的中位数是 3030(10, 10, 10, 20, 30)(10,\ 10,\ 10,\ 20,\ 30) 的中位数是 1010

すぬけ君想出了如下的问题。

给定一个长度为 NN 的数列 aa。对于每一组 (l, r)(l,\ r)1lrN1\leq l\leq r\leq N),定义 aa 的连续子序列 (al, al+1, ..., ar)(a_l,\ a_{l+1},\ ...,\ a_r) 的中位数为 ml,rm_{l,r}。将所有 (l, r)(l,\ r) 对应的 ml,rm_{l,r} 按顺序排列,得到新的数列 mm。请你求出 mm 的中位数。

输入格式

输入以如下格式从标准输入给出。

NN a1a_1 a2a_2 ...... aNa_N

输出格式

输出 mm 的中位数。

样例 1

输入

3
10 30 20

输出

30

样例 2

输入

1
10

输出

10

样例 3

输入

10
5 9 5 9 8 9 3 5 4 3

输出

8

说明/提示

限制条件

  • 1N1051\leq N\leq 10^5
  • aia_i 是整数。
  • 1ai1091\leq a_i\leq 10^9

样例解释 1

aa 的每个连续子序列的中位数如下:

  • (10)(10) 的中位数是 1010
  • (30)(30) 的中位数是 3030
  • (20)(20) 的中位数是 2020
  • (10, 30)(10,\ 30) 的中位数是 3030
  • (30, 20)(30,\ 20) 的中位数是 3030
  • (10, 30, 20)(10,\ 30,\ 20) 的中位数是 2020

因此,m=(10, 30, 20, 30, 30, 20)m=(10,\ 30,\ 20,\ 30,\ 30,\ 20)mm 的中位数是 3030

由 ChatGPT 4.1 翻译