#arc101b. [arc101_b]Median of Medians

[arc101_b]Median of Medians

题目描述

我们将长度为MM的序列bb中位数定义如下:

  • bb'是通过将bb按非递减顺序排序得到的序列。那么,bb'的第(M/2+1)(M / 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

Snuke提出了以下问题:

给定长度为NN的序列aa。对于每对(l,r)(l, r)1lrN1 \leq l \leq r \leq N),令ml,rm_{l, r} 是由aa的连续子序列(al,al+1,...,ar)(a_l, a_{l + 1}, ..., a_r)所构成的序列的中位数。我们将列举所有(l,r)(l, r)对应的ml,rm_{l, r},生成一个新的序列mm。找到mm的中位数。

约束条件

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

输入

从标准输入给出以下格式的输入:

NN a1a_1 a2a_2 ...... aNa_N

输出

打印mm的中位数。

示例输入 1

3
10 30 20

示例输出 1

30

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

示例输入 2

1
10

示例输出 2

10

示例输入 3

10
5 9 5 9 8 9 3 5 4 3

示例输出 3

8