#ABC107D. 中位数的中位数

中位数的中位数

中位数的中位数

题目描述

将长度为 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

Snuke君想到了如下问题:

有一个长度为 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 的中位数。

样例

3
10 30 20
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

1
10
10
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
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
1625
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签