```c
#include<bits/stdc++.h>
using namespace std;
long long a[5005],n,q,opt,x,y,k,m;
long long sum;
int main(){
cin>>n>>q>>m;
for(int i=1;i<=n;i++)cin>>a[i];
while(q--){
cin>>opt;
if(opt==1){
cin>>x>>y>>k;
for(int i=x;i<=y;i++){
a[i]=(a[i]*k)%m;
}
}else if(opt==2){
cin>>x>>y>>k;
for(int i=x;i<=y;i++){
a[i]=(a[i]+k)%m;
}
}else{
sum=0;
cin>>x>>y>>k;
for(int i=x;i<=y;i++){
sum+=a[i];
}
cout<<sum%m<<endl;
}
}
return 0;
}
```
by simple_ @ 2024-03-12 11:43:00
这道题要用线段树的,你这样暴力做肯定过不去啊
by HMSVanguard @ 2024-03-12 11:49:10