一道非常基础的模拟题,按照题目模拟即可,由于题目中的数组的区间边界是从1开始的,因此最好将数组长度设定为n+1,然后从1开始输入数组a
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll n,q;cin>>n>>q;
vector<ll> a(n+1);
for(int i=1;i<=n;++i) cin>>a[i];
for(int i=1;i<=q;++i){
int op;cin>>op;
if(op==1){
ll l,r,x;cin>>l>>r>>x;
for(int j=l;j<=r;++j){
a[j]+=x;
}
}else{
ll l,r,x,ans=0;cin>>l>>r>>x;
for(int j=l;j<=r;++j){
if(a[j]<x){
ans++;
}
}
cout<<ans<<endl;
}
}
}

京公网安备 11010502036488号