#include <bits/stdc++.h>
using namespace std;
long long a[1000001];
long long MAX=-INT_MAX;
pair<long long,long long>p[1000001];
void add(long long k,long long x)
{
for(; k<=MAX; k+=k&-k)
a[k]+=x;
}
long long get(long long k)
{
long long sum=0;
for(; k>0; k-=k&-k)
sum+=a[k];
return sum;
}
int main()
{
long long n,x,y,w,ans=0;
cin>>n>>w;
for(int i=0; i<n; i++)
{
cin>>p[i].first>>p[i].second;
MAX=max(MAX,p[i].first);
}
for(int i=0; i<n; i++)
add(p[i].first,p[i].second);
for(int i=0; i<n; i++)
ans=max(ans,get(p[i].first+w)-get(p[i].first));
cout<<ans;
return 0;
}
为啥会WA五个点呢……