#156. 你能回答这些问题吗

你能回答这些问题吗

题目描述

给定长度为 N\red N 的数列 A\red A,以及M条指令,每条指令可能是以下两种之一:

1\red 1、“1 x y”,查询区间 [x,y]\red{[x,y]} 中的最大连续子段和,即 maxxlry\red{maxx\le l\le r\le y} i=lrA[i]\red{{\sum i=lrA[i]}}

2\red 2、“2 x y”,把 A[x]\red{A[x]} 改成 y\red y

对于每个查询指令,输出一个整数表示答案。

输入格式

第一行两个整数 N\red N , M\red M

第二行 N\red N 个整数 A[i]\red{A[i]}

接下来 M\red M 行每行 3\red 3 个整数 k\red k , x\red x , y\red yk=1\red{k=1} 表示查询(此时如果 x>y\red{x>y},请交换 x,y\red{x,y}),k=2\red{k=2}表示修改。

输出格式

对于每个查询指令输出一个整数表示答案。

每个答案占一行。

样例

输入样例

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

输出样例

2
-1

提示

N500000\red{N\le 500000},

M100000\red{M\le 100000}