#P12263. 『STA - R9』回听

『STA - R9』回听

题目描述

给定一个长为 nn 的序列 aa,定义回听操作如下:

定义一次回听操作为,任意选择一个 x∈[1,n]x\in [1,n],然后进行任意次(可以是 00 次)如下操作:

  • ax←max⁡{ax−1,0}a_x \leftarrow \max\{a_x-1,0\},选择一个 j∈[1,x)j\in[1,x),交换 ax,aja_x,a_j 并令 x←jx \leftarrow j。

定义 bib_i 为进行一次回听后 aia_i 的最小值。

注意此处回听操作不会实际影响序列 aa 的值。可以认为操作之后 aa 会恢复到操作之前的状态。

序列会进行 mm 次修改操作,每次给定 l,r,vl,r,v,使 ala_l 到 ara_r 中的每个数增加 vv。每次修改后你需要输出进行一次回听操作后本质不同的 bib_i 共有多少个(bib_i 与 bjb_j 本质不同当且仅当 bi≠bjb_i \ne b_j)。

注意:修改操作间相互影响,回听操作间相互独立。

输入格式

第一行两个整数 n,mn,m。

第二行 nn 个整数,第 ii 个整数表示 aia_i。

接下来 mm 行每行 33 个整数,分别表示 l,r,vl,r,v。

输出格式

共 mm 行,每行一个整数代表本质不同的 bib_i 个数。

3 1
2 2 2
2 3 1
2
4 3
6 5 6 6
3 3 1
1 3 2
4 4 5
3
4
2

提示

【操作解释】

对于序列 {3,8,2,4,7}\{3,8,2,4,7\},对它进行回听操作的过程如下:

若选择 x=5x=5,进行 33 次操作,选择的 jj 分别为 4,2,14,2,1,那么整个序列会这样变化:

  • {3,8,2,4,7}\{3,8,2,4,7\}
  • {3,8,2,6,4}\{3,8,2,6,4\}
  • {3,5,2,8,4}\{3,5,2,8,4\}
  • {4,3,2,8,4}\{4,3,2,8,4\}

【样例 11 解释】

修改操作后序列 aa 变为 {2,3,3}\{ 2,3,3\}。

当 i=1i=1 时,选择 x=3x=3,进行 22 次操作,jj 分别选择 2,12,1,得到 bi=a3−1−1=1b_i=a_3-1-1=1。

当 i=2i=2 时,选择 x=2x=2,进行 11 次操作,选择 j=1j =1,得到 bi=a1=2b_i=a_1=2。

当 i=3i=3 时,选择 x=3x=3,进行 11 次操作,选择 j=1j =1,得到 bi=a1=2b_i=a_1=2。

综上,序列 bb 为 {1,2,2}\{ 1,2,2\},故答案为 22。

【数据范围】

本题采用捆绑测试。

  • Subtask 0(10 pts):1≤n,m≤101\le n,m \le 10。
  • Subtask 1(15 pts):1≤n,m≤1051\le n,m \le 10^5,l≥2l\ge 2,a1=1a_1=1,∀i∈[2,n], ai>i\forall i\in[2,n],\,a_i>i。
  • Subtask 2(15 pts):1≤n,m≤10001\le n,m \le 1000。
  • Subtask 3(30 pts):1≤n,m≤1051\le n,m \le 10^5。
  • Subtask 4(30 pts):无特殊限制。

对于所有测试数据,保证 1≤n,m≤5×1051\le n,m\le 5\times10^5,1≤ai,v≤1061\le a_i,v\le 10^6,1≤l≤r≤n1\le l\le r\le n。

本题输入输出量较大,建议使用较快的 IO 方式。