2630 「BalticOI 2011 Day1」种树 Growing Trees

内存限制:256 MB 时间限制:1000 ms

题目描述

译自 BalticOI 2011 Day1 T1「Growing Trees」

给出一个长度为 $N$ 的数组 $a$,数组中每个数的取值范围均为 $[1,N]$(没说互不相同)。 接下来有 $M$ 组操作,操作分为两种: 1. $\texttt{F}\:\:c\:\:h$
将满足 $a[i] \ge h$ 的所有 $a[i]$ 中最小的 $c$ 个数都 $+1$; 2. $\texttt{C}\:\:\min\:\:\max$
输出满足 $\min \le a[i] \le \max$ 的 $a[i]$ 的个数。

输入格式

第一行有两个整数 $N$ 和 $M$。
第二行有 $N$ 个整数,表示数组 $a$。
在接下来的 $M$ 行中,每行有一组操作。

输出格式

对于每组 $\texttt{C}\:\:\min\:\:\max$ 操作输出一行,每行一个整数,表示满足 $\min \le a[i] \le \max$ 的 $a[i]$ 的个数。

样例

数据范围与提示

$1 ≤ N,M ≤ 10^5, 1 ≤ c ≤ N, 0 ≤ h ≤ 10^9, 1 ≤\ min ≤ \max ≤ 10^9$。

样例

样例输入 1

5 7 1 3 2 5 2 F 2 1 C 3 6 F 2 3 C 6 8 F 2 1 F 2 2 C 3 5

样例输出 1

3 0 5