求调
#include<bits/stdc++.h>
using namespace std;
int n,m,a[214514],cf[214514],flag=0,cnt=n;
long long qzh[214514],sum;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
qzh[i]=qzh[i-1]+a[i];
cf[i]=a[i]+a[i-1];
}
for(int i=1;i<=m;i++){
int l,r,t,k;
cin>>t;
if(t==1){
cin>>l>>r>>k;
cf[l]+=k;
cf[r+1]-=k;
flag=1;
cnt=1;
sum=0;
}
if(t==2){
cin>>k;
cf[1]+=k;
cf[2]-=k;
}
if(t==3){
cin>>k;
cf[1]-=k;
cf[2]+=k;
}
if(t==4){
cin>>l>>r;
if(flag==0){
if(cnt>=r){
cout<<qzh[r]-qzh[l-1]<<endl;
}else{
for(int i=cnt+1;i<=r;i++){
sum+=cf[i];
a[i]=sum;
qzh[i]=qzh[i-1]+a[i];
}
cout<<qzh[r]-qzh[l-1]<<endl;
}
}else{
cnt=r;
for(int i=1;i<=r;i++){
sum+=cf[i];
a[i]=sum;
qzh[i]=qzh[i-1]+a[i];
}
flag=0;
cout<<qzh[r]-qzh[l-1]<<endl;
}
}
if(t==5){
cout<<cf[1]<<endl;
}
}
return 0;
}