#L2572. 「ZJOI2017」字符串

「ZJOI2017」字符串

题目描述

猪小侠最近学习了字符串相关理论,现在他遇到了这样一个题:

维护一个动态字符串 s[1..n]s[1..n] ,字符串的字符集是所有 x109|x| ≤ 10^9 的整数。要求支持两个操作:

  1. 输入 l,r,dl, r, d ,对于所有 lirl ≤ i ≤ r ,将 s[i]s[i] 修改为 s[i]+ds[i] + d ,注意 dd 可能是负数。
  2. 输入 l,rl, r ,输出子串 s[l..r]s[l..r] 的字典序最小的后缀的起点位置。即,如果最小后缀是 s[p..r]s[p..r]lprl ≤p ≤ r),请输出 pp

输入格式

第一行两个非负整数 n,qn, q

接下来一行包含 nn 个正整数,表示初始时的字符串。

接下来 qq 行,每行为 11 ll rr dd22 ll rr ,分别表示两种操作。

输出格式

对于所有的查询操作按顺序输出答案。

样例

输入

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

输出

3
5
1

数据范围与提示

测试点编号 nn qq 其他约定
11 300≤ 300
22 2×104≤ 2 × 10^4 104≤ 10^4
33
44 2×105≤ 2 × 10^5 3×1043 × 10^4 只有第二类操作
55
66 数据随机生成
77
88
99
1010

对于 100%100\% 的数据, 1lrn1 ≤ l ≤ r ≤ nd103|d| ≤ 10^3si108|s_i| ≤ 10^8

注意, 6677 两个测试数据在随机生成时, sis_i[0,1][0, 1] 中随机, dd±1±1 中随机。操作种类和操作区间都是等概率随机的。