#P1024. 能量晶阵巡检
能量晶阵巡检
题目描述
星港中有一排能量晶石,共有 块,从左到右编号为 。
每块晶石一开始都有一个正整数能量值,并且初始能量值不超过 。维护员会对这些晶石进行若干次操作。
有一种充能操作,可以选择一段连续编号的晶石 ,并让这段区间内每块晶石的能量值都增加一个整数 。当 时,表示只给编号为 的那一块晶石充能。
此外,巡检员会不定期进行检测:给出一段区间 和一个标准值 ,询问这段区间中有多少块晶石当前的能量值大于等于 。
请你按照操作顺序处理所有充能与检测请求,并回答每一次检测。
输入格式
第一行包含两个整数 ,表示晶石数量以及操作总数。
第二行包含 个正整数,第 个整数表示第 块晶石的初始能量值。
接下来 行,每行表示一次操作,格式如下:
若第一个字符为 M,则后面跟着三个整数 ,表示将编号在闭区间 内的所有晶石能量值都增加 。
若第一个字符为 A,则后面跟着三个整数 ,表示询问编号在闭区间 内,有多少块晶石的能量值大于等于 。
输出格式
对于每一次 A 操作,输出一行一个整数,表示对应区间内能量值大于等于 的晶石数量。
输入输出样例
输入
6 5
3 8 1 6 4 7
A 2 6 6
M 3 5 4
A 1 5 8
M 1 2 2
A 1 6 9
输出
3
3
2
样例解释
初始能量值为:
3 8 1 6 4 7
第一次检测区间 ,其中能量值大于等于 的晶石有 ,所以答案为 。
随后对区间 每块晶石增加 ,能量值变为:
3 8 5 10 8 7
第二次检测区间 ,其中能量值大于等于 的晶石有 ,所以答案为 。
接着对区间 每块晶石增加 ,能量值变为:
5 10 5 10 8 7
最后检测区间 ,其中能量值大于等于 的晶石有 ,所以答案为 。
数据范围
对于 的数据,满足 ,。
对于 的数据,满足:
$$N \le 10^6,\quad Q \le 3000,\quad 1 \le W \le 1000,\quad 1 \le C \le 10^9$$每块晶石的初始能量值均为不超过 的正整数。