题目描述
现在有一个包含 \(n\) 个元素的数组,它的元素的编号从 \(1\) 到 \(n\) 。
每一个元素都有一个初始的颜色 \(C_i\) 以及数值 \(W_i\) 。
这个数组支持 \(4\) 种操作:
CC x c
:第x
个元素的颜色被修改成了c
;CW x w
:第x
个元素的数值被修改成了w
;QS x y
:查询从第x
个元素开始到第y
个元素结束的所有颜色等于C_x
的数值之和;QM x y
:查询从第x
个元素开始到第y
个元素结束的所有颜色等于C_x
的数值中的最大值。
输入格式
输入的第一行包含整数 \(n, q(1 \le n, q \le 10^5)\) 依次表示元素个数和操作数。
接下来 \(n\) 行,第 \(i+1\) 行两个整数 \(W_i, C_i\) 依次表示操作开始之前,第 \(i\) 个元素的数值和颜色。
接下来 \(q\) 行,每行一个操作,格式如上所述。
数据保证每次修改的数值都不超过 \(10^4\) 。
输出格式
对每个QS和QM事件,输出一行,表示对应的结果。
样例输入
3 6
1 1
2 2
3 3
QM 1 3
QS 1 3
CC 1 3
CW 1 5
QM 1 3
QS 1 3
样例输出
1
1
5
8