问题1558-- Power Seq

1558: Power Seq

时间限制: 2Sec 内存限制:64 MB
提交:154 解决:6
[ 状态] [ 讨论版] [ 提交] [命题人: ]
题目描述
ch给你一个长度为 n的数列,有两种操作:
set l r x :将 [l, r]内的数全都赋值为 x
query l r :查询 [l, r]中占主导地位的数字是哪个。
该数字占主导地位,意思是该数在该区间中出现的次数占了区间长度的一半以上(出现一半不算占主导地位)。若没有,则输出 -1
输入
单组数据。
第一行,一个数: n ,表示序列长度 (1 ≤ n ≤ 200000)
第二行, n个数,分别为 a1∼ an(0 ≤ ai≤ 106)
第三行,一个数 Q,表示操作的个数 (1 ≤ Q ≤ 200000)
接下来的 Q行,每行一个操作,如题目描述所示,数据保证输入合法。

输出
对于每个query操作,输出区间的主导数字是哪个。若不存在,输出-1

样例输入 Copy
10 1 2 1 2 1 2 1 2 1 2 10 query 1 10 query 2 10 query 1 9 set 1 5 3 query 2 3 query 1 10 query 1 9 set 1 10 1 query 2 3 query 1 10
样例输出 Copy
-1 2 1 3 -1 3 1 1
来源/分类