#include<bits/stdc++.h>
using namespace std;
#define int long long
int sum[100005];
int fun[100005];
int ans=0;
signed main()
{
int n,w,maxx=-1;
cin>>n>>w;
for(int i=1;i<=n;i++)
{
int x,b;
cin>>x>>b;
fun[x]+=b;
maxx=max(maxx,x);
}
for(int i=1;i<=maxx;i++)
{
sum[i]=sum[i-1]+fun[i];
}
for(int i=1;i<=maxx;i++)
{
ans=max(ans,sum[i+w]-sum[i]);
}
cout<<ans;
}
但若将第24行改为
ans=max(ans,sum[i]-sum[i-w]);
则可以AC。
为什么?