1.4 KiB
1.4 KiB
中位数
题目背景
1.5s, 512MB
定义一个序列 A[0,1,...,N-1] 的中位数为将 A 升序排序之后的中间元素 $A'[N/2]$;如果 N 为偶数,则序列可以有 2 个中位数。
定义 f(A) 为序列 A 的中位数在序列中的出现次数,如果序列有 2 个不同中位数,则为它们出现次数的较大值。
题目描述
现在给定序列 $A[0,1,...,N-1]$,请你计算其所有子段 f 值的最大值:
max_{0\le l \le r< N}\{ f(A[l...r])\}
输入格式
第 1 行: N
第 2 行: A[0] A[1] \cdots A[N-1]
输出格式
输出1行1个整数代表答案
样例 #1
样例输入 #1
7
1 2 3 1 2 1 3
样例输出 #1
3
样例 #2
样例输入 #2
9
1 1 2 3 4 3 2 1 1
样例输出 #2
2
样例 #3
样例输入 #3
14
2 6 2 5 3 4 2 1 4 3 5 6 3 2
样例输出 #3
3
提示
约束条件
1 \leq N \leq 5 \times 10^{5}1 \leq A[i] \leq N
子任务
- (11 分):
N \leq 100。 - (17 分):
N \le 2 \times 10^{3}。 - (7 分):存在一个
x满足\forall 0 \leq i<x, A[i] \leq A[i+1]且\forall x<i<N, A[i] \leq A[i-1]。 - (12 分):
A[i] \leq 3。 - (13 分):序列中所有数出现最多不超过
2次。 - (22 分):
N \leq 8 \times 10^{4}。 - (18 分):没有额外限制。