时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
            空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
              qn姐姐最好了~ 
   qn姐姐给你了一个长度为n的序列还有m次操作让你玩, 
   1 l r 询问区间[l,r]内的元素和
 
   2 l r 询问区间[l,r]内的
元素的平方 和      3 l r x 将区间[l,r]内的每一个元素都乘上x
  
     4 l r x 将区间[l,r]内的每一个元素都加上x
  
  输入描述:
                                                    第一行两个数n,m
接下来一行n个数表示初始序列
就下来m行每行第一个数为操作方法opt,
若opt=1或者opt=2,则之后跟着两个数为l,r
若opt=3或者opt=4,则之后跟着三个数为l,r,x
操作意思为题目描述里说的
                                                                            输出描述:
                                                    对于每一个操作1,2,输出一行表示答案
                                                                            
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    5 6
1 2 3 4 5
1 1 5
2 1 5
3 1 2 1
4 1 3 2
1 1 4
2 2 3
                                 
                             
                            
                                                     
                     
                                                        备注:
                对于100%的数据 n=10000,m=200000 (注意是等于号)
保证所有询问的答案在long long 范围内