#include<bits/stdc++.h>
using namespace std;
int n,d,k,ans=0x3f3f3f,b[100010];
struct st{
int x,y;
}a[100010];
bool cmp(st a,st b){
return a.x<b.x;
}
int main(){
cin>>n>>d;
deque<int>q,p;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
}
sort(a+1,a+1+n,cmp);
q.push_back(0);
p.push_back(0);
for(int i=0;i<=n;i++){
while(q.size()&&q.front()<i)q.pop_front();
while(p.size()&&p.front()<i)p.pop_front();
while(k<n&&a[p.front()].y-a[q.front()].y<d){
k++;
while(p.size()&&p.back()<a[k].y)p.pop_back();
p.push_back(k);
while(q.size()&&q.back()>a[k].y)q.pop_back();
q.push_back(k);
}
if(a[p.front()].y-a[q.front()].y>=d)ans=min(ans,a[k].x-a[i].x);
}
if(ans>=0x3f3f3f)cout<<-1;
else cout<<ans;
return 0;
}
调了两个半小时了没调出来,求助