题目描述
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 。
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