题目描述
我们将长度为M的序列b的中位数定义如下:
- 令b′是通过将b按非递减顺序排序得到的序列。那么,b′的第(M/2+1)个元素的值就是b的中位数。其中,/表示整除并向下取整。
例如,序列(10,30,20)的中位数是20;序列(10,30,20,40)的中位数是30;序列(10,10,10,20,30)的中位数是10。
Snuke提出了以下问题:
给定长度为N的序列a。对于每对(l,r)(1≤l≤r≤N),令ml,r 是由a的连续子序列(al,al+1,...,ar)所构成的序列的中位数。我们将列举所有(l,r)对应的ml,r,生成一个新的序列m。找到m的中位数。
约束条件
- 1≤N≤105
- ai是整数。
- 1≤ai≤109
输入
从标准输入给出以下格式的输入:
N
a1 a2 ... aN
输出
打印m的中位数。
示例输入 1
3
10 30 20
示例输出 1
30
a的每个连续子序列的中位数如下:
- 序列(10)的中位数是10。
- 序列(30)的中位数是30。
- 序列(20)的中位数是20。
- 序列(10,30)的中位数是30。
- 序列(30,20)的中位数是30。
- 序列(10,30,20)的中位数是20。
因此,m=(10,30,20,30,30,20),m的中位数是30。
示例输入 2
1
10
示例输出 2
10
示例输入 3
10
5 9 5 9 8 9 3 5 4 3
示例输出 3
8