#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
struct Node{
int left,right;
int sum,val;
int lv,rv;
int lazy;
}t[maxn*4];
int n,q,a[maxn];
void pushup(int u){
int ls=u*2,rs=u*2+1;
t[u].sum=t[ls].sum+t[rs].sum;
t[u].val=max(t[ls].rv+t[rs].lv,max(t[ls].val,t[rs].val));
t[u].lv=max(t[ls].lv,t[rs].lv+t[ls].sum);
t[u].rv=max(t[rs].rv,t[ls].rv+t[rs].sum);
}
void pushdown(int u){
if(t[u].lazy){
int ls=u*2,rs=u*2+1;
t[ls].sum+=(t[ls].right-t[ls].left+1)*t[u].lazy;
t[rs].sum+=(t[rs].right-t[rs].left+1)*t[u].lazy;
t[ls].val+=t[u].lazy;
t[rs].val+=t[u].lazy;
t[ls].lv+=t[u].lazy;
t[rs].lv+=t[u].lazy;
t[ls].rv+=t[u].lazy;
t[rs].rv+=t[u].lazy;
t[ls].lazy+=t[u].lazy;
t[rs].lazy+=t[u].lazy;
t[u].lazy=0;
}
}
void build(int u,int L,int R){
t[u].left=L;
t[u].right=R;
t[u].lazy=0;
if(L==R){
t[u].sum=a[L];
t[u].val=a[L];
t[u].lv=t[u].rv=a[L];
}else{
int M=(L+R)>>1;
build(u*2,L,M);
build(u*2+1,M+1,R);
pushup(u);
}
}
void update(int u,int l,int r,int x){
if(l<=t[u].left && t[u].right<=r){
t[u].sum+=(t[u].right-t[u].left+1)*x;
t[u].val+=x;
t[u].lv+=x;
t[u].rv+=x;
t[u].lazy+=x;
return;
}
pushdown(u);
int mid=(t[u].left+t[u].right)>>1;
if(l<=mid) update(u*2,l,r,x);
if(r>mid) update(u*2+1,l,r,x);
pushup(u);
}
Node merge(Node a, Node b) {
Node res;
res.left = a.left;
res.right = b.right;
res.sum = a.sum + b.sum;
res.lv = max(a.lv, a.sum + b.lv);
res.rv = max(b.rv, b.sum + a.rv);
res.val = max(max(a.val, b.val), a.rv + b.lv);
res.lazy = 0;
return res;
}
Node query(int u,int l,int r){
if(l<=t[u].left && t[u].right<=r){
return t[u];
}
pushdown(u);
int mid=(t[u].left+t[u].right)>>1;
if(r<=mid) return query(u*2,l,r);
if(l>mid) return query(u*2+1,l,r);
return merge(query(u*2,l,r), query(u*2+1,l,r));
}
int main(){
cin >> n >> q;
for(int i=1;i<=n;i++) cin >> a[i];
build(1,1,n);
while(q--){
int op;
cin >> op;
if(op==1){
int l,r,x;
cin >> l >> r >> x;
update(1,l,r,x);
}else{
int l,r;
cin >> l >> r;
Node res = query(1,l,r);
cout << max(res.val,0) << endl;
}
}
return 0;
}
不要以为你是管理员你就可以乱诬蔑人,不要以为你做不来就乱说别人。你没有证据!!!洛谷,就是管理员享有最高权力,你认为我是抄的,你就棕吧,你甚至可以封我的号。但是,群众的眼睛是雪亮的!!!!