#B4057. [语言月赛 202411] Rise

[语言月赛 202411] Rise

题目描述

Farmer Z 有一排 nn 个花盆,从左到右依次编号为 1n1\sim n。每盆花都有高度 hih_i。初始时,所有的 hi=0h_i=0

接下来 mm 天,Farmer Z 将在花盆上种花,具体的,在第 ii 天,Farmer Z 将进行以下操作中的其中一个

  • water l r,Farmer Z 对第 lrl \sim r 号花盆浇水,使得 hl,hl+1,,hrh_l, h_{l + 1}, \cdots, h_r 均增长 11
  • rise l r k,Farmer Z 会依次查看第 lrl \sim r 号花盆,如果 ii 号花盆的 hikh_i\ge k,则 Farmer Z 会摘下 ii 号花盆的花,使 hih_i 变为 00

对于每个 rise 操作,你需要输出一行一个整数 cc,表示被摘下的花的个数。

输入格式

第一行两个整数 n,mn,m,表示花盆的数量与种花的天数。

接下来 mm 行,每一行:

首先输入一个字符串 opop

如果 opopwater,后接两个整数 l,rl,r,含义如题所示。否则,opoprise,后接三个整数 l,r,kl,r,k,含义如题所示。

输出格式

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

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

1
5
0

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

0
1

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

0
1

提示

样例 #1 解释

共有五盆花,初始时 hih_i 为:(0,0,0,0,0)(0,0,0,0,0)

第一次操作,对第 2,3,42,3,4 盆花浇水,它们的 hih_i 增加 11hih_i 变为:(0,1,1,1,0)(0,1,1,1,0)

第二次操作,对第 3,4,53,4,5 盆花浇水, hih_i 变为:(0,1,2,2,1)(0,1,2,2,1)

第三次操作,在第 1,2,31,2,3 盆花中,只有 h32h_3\ge 2,所以收割了第 33 盆花,共 11 盆,故输出一行 11hih_i 变为 0,1,0,2,10,1,0,2,1

第四次操作,对所有花浇水,hih_i 变为 (1,2,1,3,2)(1,2,1,3,2)

第五次操作,所有花都被收割了,共 55 盆,故输出一行 55hih_i 变为 (0,0,0,0,0)(0,0,0,0,0)

第六次操作,没有花被收割,共 00 盆,故输出一行 00

数据范围

对于 100%100\% 的数据,1n,m,k10001\le n,m,k\le 1000opopwaterrise1lrn1\le l\le r\le n。

对于前 10%10\% 的数据,n=1n=1

对于前 20%20\% 的数据,n2n\le 2

另有 10%10\% 的数据,l=rl=r

另有 30%30\% 的数据,k=1k=1