#ds202. 线段树2

线段树2

线段树2

题目描述

给nn个数a1,a2,a3,…,ana_1, a_2, a_3, \dots, a_n。

支持qq个操作:

  1. 1 x d,修改ax=da_x = d。
  2. 2 l r,查询[l,r][l, r]中的最大子段和,也就是找到l≤l′≤r′≤rl\leq l'\leq r' \leq r,使得∑i=l′r′ai\sum_{i=l'}^{r'} a_i最大。

输入格式

第一行两个整数n,q(1≤n,q≤2×105)n, q (1\leq n, q\leq 2 \times 10^5)。

接下来一行nn个整数a1,a2,…,an(−109≤ai≤109)a_1, a_2, \dots, a_n (-10^9 \leq a_i\leq 10^9)。

接下来qq行,每行一个形如1 x d或者2 l r的操作,保证$1\leq x\leq n, 1\leq l\leq r\leq n, -10^9\leq d\leq 10^9$。

输出格式

对于每个查询,输出一行,表示答案。

样例输入

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

样例输出

4
5
4