#4526. 子数组中占绝大多数的元素

    ID: 4526 传统题 500ms 256MiB 尝试: 24 已通过: 9 难度: 7 上传者: 标签>难度提高+/省选-基础算法二分概率论随机化高级数据结构线段树

子数组中占绝大多数的元素

题目描述

给定有 nn 个元素的数组 a, 请有效地找到给定子数组的 多数元素

子数组的 多数元素 是指在子数组中出现 k 次或以上次的元素。

这里的子数组是指 a 中连续的一段。

输入格式

第一行一个整数 nn,表示 a 的长度;

第二行 nn 个空格隔开的整数,表示 a 中的各个元素。

第三行 一个 整数 qq,表示询问的次数;

接下来的 qq 行,每行空格隔开三个的整数 L,R,kL, R, k,表示寻找 [L,R][L, R] 范围内出现 k 次或以上次的元素。

输出格式

qq 行,至少出现 k 次的数,如果不存在这样的元素则返回 -1

样例

示例 1:

6
1 1 2 2 1 1
3
1 6 4
1 4 3
3 4 2
1
-1
2

数据规模及限制

  • 1n2×1041 \le n \le 2 \times 10^4
  • 1ai2×1041 \le a_i \le2 \times 10^4
  • 1LRn1 \le L \le R \le n
  • kRL+1k \le R - L + 1
  • 2×k>RL+12 \times k > R - L + 1
  • 1q1041 \le q \le 10^4
}