[语言月赛 202411] Rise

题目描述

Farmer Z 有一排 $n$ 个花盆,从左到右依次编号为 $1\sim n$。每盆花都有高度 $h_i$。初始时,所有的 $h_i=0$。 接下来 $m$ 天,Farmer Z 将在花盆上种花,具体的,在第 $i$ 天,Farmer Z 将进行以下操作中的**其中一个**。 - `water l r`,Farmer Z 对第 $l \sim r$ 号花盆浇水,使得 $h_l, h_{l + 1}, \cdots, h_r$ 均增长 $1$。 - `rise l r k`,Farmer Z 会依次查看第 $l \sim r$ 号花盆,如果 $i$ 号花盆的 $h_i\ge k$,则 Farmer Z 会摘下 $i$ 号花盆的花,使 $h_i$ 变为 $0$。 对于每个 `rise` 操作,你需要输出一行一个整数 $c$,表示被摘下的花的个数。

输入输出格式

输入格式


第一行两个整数 $n,m$,表示花盆的数量与种花的天数。 接下来 $m$ 行,每一行: 首先输入一个字符串 $op$。 如果 $op$ 为 `water`,后接两个整数 $l,r$,含义如题所示。否则,$op$ 为 `rise`,后接三个整数 $l,r,k$,含义如题所示。

输出格式


对于每个 `rise` 操作,输出一行一个整数 $c$,表示该次操作被摘下的花的个数。

输入输出样例

输入样例 #1

5 6
water 2 4
water 3 5
rise 1 3 2
water 1 5 
rise 1 5 1
rise 1 5 1

输出样例 #1

1
5
0

输入样例 #2

2 3
rise 1 2 1
water 1 1
rise 1 2 1

输出样例 #2

0
1

输入样例 #3

1 4
water 1 1
water 1 1
rise 1 1 3
rise 1 1 2

输出样例 #3

0
1

说明

### 样例 #1 解释 共有五盆花,初始时 $h_i$ 为:$(0,0,0,0,0)$。 第一次操作,对第 $2,3,4$ 盆花浇水,它们的 $h_i$ 增加 $1$,$h_i$ 变为:$(0,1,1,1,0)$。 第二次操作,对第 $3,4,5$ 盆花浇水, $h_i$ 变为:$(0,1,2,2,1)$。 第三次操作,在第 $1,2,3$ 盆花中,只有 $h_3\ge 2$,所以收割了第 $3$ 盆花,共 $1$ 盆,故输出一行 $1$,$h_i$ 变为 $0,1,0,2,1$。 第四次操作,对所有花浇水,$h_i$ 变为 $(1,2,1,3,2)$。 第五次操作,所有花都被收割了,共 $5$ 盆,故输出一行 $5$,$h_i$ 变为 $(0,0,0,0,0)$。 第六次操作,没有花被收割,共 $0$ 盆,故输出一行 $0$。 ### 数据范围 对于 $100\%$ 的数据,$1\le n,m,k\le 1000$,$op$ 为 `water` 或 `rise`,$1\le l\le r\le n。$ 对于前 $10\%$ 的数据,$n=1$。 对于前 $20\%$ 的数据,$n\le 2$。 另有 $10\%$ 的数据,$l=r$。 另有 $30\%$ 的数据,$k=1$。