题号:NC14594
                        时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
            空间限制:C/C++/Rust/Pascal 800 M,其他语言1600 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
              给你一个长为n的序列,有m个操作,全局加,或者查询区间最大子段和。 
  
输入描述:
                                                    第一行两个数n,m
之后一行n个数表示这个序列
之后m行,每行一个操作
1 x : 所有数都加上x
2 l r : 查询区间[l,r]内的最大子段和(可以不选数)
                                                                            输出描述:
                                                    对于每个2种类操作,输出一行一个数表示答案
                                                                            
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    5 7
-10 -3 -2 -4 -5
2 2 4
1 5
2 2 4
1 3
2 1 5
1 2
2 3 5
                                 
                             
                            
                                                     
                     
                                                        备注:
                1 <= n <= 300000
1 <= m <= 600000
序列中的数绝对值<= 2000000000
1操作中的x的绝对值<= 50000000