#T1001. 合成众数(mode)

合成众数(mode)

【题目描述】

小灰灰有一个长度为 nn 的数组 AAa1,a2,,ana_1, a_2, \dots, a_n

小蓝想考一考小灰灰,于是她打算利用这个数组 AA 来生成另一个数组 BB

初始时,数组 BB 为空。紧接着,小蓝会进行 mm 次操作,第 ii 次操作她会选择一个区间 [li,ri][l_i, r_i],然后她会把 ali,ali+1,,aria_{l_i}, a_{l_{i+1}}, \dots, a_{r_i} 这段元素在 BB 数组末尾追加 kik_i 次。

最后你需要帮助小灰灰回答,数组 BB 的众数是谁,由于众数可能不唯一,你只需要输出最小的众数即可。


【输入描述】

第一行输入两个空格分隔的整数,依次代表 nnmm

接下来一行输入 nn 个空格分隔的整数,第 ii 个整数代表 aia_i

接下来 mm 行,第 ii 行输入三个空格分隔的整数,依次代表 lil_irir_ikik_i

保证:

  • 1n,m,ki2×1051\le n, m, k_i \le 2\times 10^5
  • 1ain1\le a_i \le n
  • 1lirin1\le l_i \le r_i \le n

【输出描述】

输出一行一个整数表示在 BB 数组中出现次数最多的数,如果有多个数出现次数同样最多则输出最小的那一个。


【样例 1】

【样例 1 输入】

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

【样例 1 输出】

2

【样例 1 解释】

初始数组 A = [4, 2, 1, 2, 3, 4],B 为空:{}

操作 区间 [l,r] 追加片段(来自 A) 追加次数 k 操作后的 B 数组
1 [2,4] [2,1,2] 2 {2, 1, 2, 2, 1, 2}
2 [1,2] [4,2] 4 {2,1,2,2,1,2, 4,2,4,2,4,2,4,2}
3 [4,6] [2,3,4] 1 {2,1,2,2,1,2, 4,2,4,2,4,2,4,2, 2,3,4}

最终统计各数字出现次数:1 出现 2 次,2 出现 9 次,3 出现 1 次,4 出现 5 次。

众数为 2,输出 2

【样例 2】

【样例 2 输入】

4 3
1 3 2 2
1 3 3
2 4 2
1 1 4

【样例 2 输出】

1

【样例 2 解释】

初始 A = [1, 3, 2, 2],B 为空:{}

操作 区间 [l,r] 追加片段 k 操作后的 B 数组
1 [1,3] [1,3,2] 3 {1,3,2, 1,3,2, 1,3,2}
2 [2,4] [3,2,2] 2 {1,3,2,1,3,2,1,3,2, 3,2,2,3,2,2}
3 [1,1] [1] 4 {1,3,2,1,3,2,1,3,2, 3,2,2,3,2,2, 1,1,1,1}

统计:1 出现 7 次,2 出现 7 次,3 出现 5 次。

众数有两个(1 和 2,均出现 7 次),按题意输出最小的众数 1

【样例 3】

【样例 3 输入】

20 10
1 2 3 4 5 2 8 9 7 11 12 13 14 15 2 2 16 17 18 2
1 5 1
6 10 1
10 10 10
10 12 2
2 2 1
7 9 1
13 15 1
16 18 1
1 1 1
19 20 1

【样例 3 输出】

11

【数据规模与约定】

分数 特殊性质
5 m=1m = 1ki=1k_i = 1
5. m=1m = 1ki1k_i\ne 1
10 n,m5000n,m\le 5000k=1k = 1
15 n,m5000n,m\le 5000k1k \ne 1
15. ai100a_i \le 100k=1k = 1
20 ai100a_i \le 100k1k \ne 1
30
  • 请注意:本题采用【捆绑测试】