3438 - 小白逛公园
时间限制 : 1 秒
内存限制 : 512 MB
小新经常陪小白去公园玩,也就是所谓的遛狗啦…
在小新家附近有一条“公园路”,路的一边从南到北依次排着 n 个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。
一开始,小白就根据公园的风景给每个公园打了分。小新为了省事,每次遛狗的时候都会事先规定一个范围,小白只可以选择第 a 个和第 b 个公园之间(包括 a, b 两个公园)选择连续的一些公园玩。小白当然希望选出的公园的分数总和尽量高咯。同时,由于一些公园的景观会有所改变,所以,小白的打分也可能会有一些变化。
那么,就请你来帮小白选择公园吧。
输入
第一行,两个整数 n 和 m,分别表示表示公园的数量和操作(遛狗或者改变打分)总数。
接下来 n 行,每行一个整数,依次给出小白开始时对公园的打分。
接下来 m 行,每行三个整数。其中第一个整数 k 为 1 或 2。
- k=1 表示,小新要带小白出去玩,接下来的两个整数 a 和 b 给出了选择公园的范围 (1 \le a,b \le n)。测试数据可能会出现 a > b 的情况,需要进行交换;
- k=2 表示,小白改变了对某个公园的打分,接下来的两个整数 p 和 s,表示小白对第 p 个公园的打分变成了 s(1\le p\le N)。
输出
小白每出去玩一次,都对应输出一行,只包含一个整数,表示小白可以选出的公园得分和的最大值。
样例
输入
5 3 1 2 -3 4 5 1 2 3 2 2 -1 1 2 3
输出
2 -1
提示
数据规模与约定
对于 100\% 的数据,1 \le n \le 5 \times 10^5,1 \le m \le 10^5,所有打分都是绝对值不超过 1000 的整数。