```cpp
#include<bits/stdc++.h>
using namespace std;
struct Cow{
int x,h;
bool operator<(Cow a){return x<a.x;}
}cow[50010];
int n,d;
deque<Cow>dq;
int pushleft(int x){
while(!dq.empty()&&dq.back().h<=cow[x].h)dq.pop_back();
dq.push_back(cow[x]);
while(!dq.empty()&&dq.front().x+d<cow[x+1].x)dq.pop_front();
return dq.empty()?0:dq.front().h;
}
int pushright(int x){
while(!dq.empty()&&dq.back().h<=cow[x].h)dq.pop_back();
dq.push_back(cow[x]);
while(!dq.empty()&&dq.front().x-d>cow[x-1].x)dq.pop_front();
return dq.empty()?0:dq.front().h;
}
bool crowd[50010];
int main(){
ios::sync_with_stdio(false);
cin>>n>>d;
for(int i=1;i<=n;i++)cin>>cow[i].x>>cow[i].h;
sort(cow+1,cow+n+1);
for(int i=1;i<n;i++)if(pushleft(i)<2*cow[i+1].h)
crowd[i+1]=1;
dq.clear();
for(int i=n;i>1;i--)if(pushright(i)<2*cow[i-1].h)crowd[i-1]=1;
int ans=0;
for(int i=2;i<n;i++)ans+=int(!crowd[i]);
cout<<ans<<endl;
}
``````
~~错的莫名其妙,好像没有问题~~
by conancat @ 2023-12-27 17:07:05
@[baibaieee](/user/536362)
by conancat @ 2023-12-27 17:59:51