想换种思路来做 (不会写线段树)
以下是暴力(应该)代码
#include<iostream>
#include<algorithm>
using namespace std;
long long a[1000011];
long long b[1000011][6];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int ty,x,y,z;
int num,maxn;
for(int i=1;i<=q;i++){
cin>>ty;
if(ty!=3){
b[i][0]=ty;
cin>>x>>y>>z;
b[i][1]=x;
b[i][2]=y;
b[i][3]=z;
}else{
cin>>x>>y;
maxn=-0x3f3f3f;
for(int j=x;j<=y;j++){
num=a[j];
for(int s=1;s<i;s++){
if(j>=b[s][1]&&j<=b[s][2]){
if(b[s][0]==1){
num=b[s][3];
}else{
num+=b[s][3];
}
}
}
if(num>maxn){
maxn=num;
}
}
cout<<maxn<<'\n';
}
}
return 0;
}
还请各位dalao略微提下建议(