这题主要问题是我那个统计段数一开始这么写的,气死我了
ll cnt=0;
for(int i=1;i<n;i++){
if(h[i]>l&&h[i+1]<=l){
cnt++;
}
}
if(h[n]>l&&h[n-1]<=l)cnt++;
ac代码
#include<iostream>
using namespace std;
typedef long long ll;
ll h[100010];
int main(){
ll n,m,l;
cin>>n>>m>>l;
for(int i=1;i<=n;i++){
cin>>h[i];
}
ll cnt=0;
h[0]=0;
for(int i=1;i<=n;i++){
if(h[i]>l&&h[i-1]<=l){
cnt++;
}
}
for(int i=0;i<m;i++){
ll k;
cin>>k;
if(k){
int x;
ll d;
cin>>x>>d;
if(h[x]+d>l&&h[x]<=l){
// cout<<h[x]<<endl;
if(x!=1&&x!=n&&h[x-1]>l&&h[x+1]>l){
cnt--;
}
else if(x==1){
// cout<<"zxczxc"<<endl;
if(h[x+1]<=l)cnt++;
}
else if(x==n){
if(h[x-1]<=l)cnt++;
}
else{
if(h[x-1]<=l&&h[x+1]<=l){
cnt++;
}
}
}
h[x]+=d;
}
else{
cout<<cnt<<endl;
}
}
return 0;
}