本来是奔着线段树来的,然后看完标签,二话不说直接打了个线段树的模板,然后开始认真看题。
这××用得着线段树??
其实直接前缀和再傻瓜模拟就好了,真的不知道为什么要用线段树。
#include <bits/stdc++.h>
#define gg 100010
using namespace std;
int a[gg];
int sum[gg];
bool cmp(int x,int y){
return x>y;
}
int main(){
int i,j,x,y,n,m;
cin>>n>>m;
for (i=1;i<=n;i++){
cin>>x>>y;
a[x]+=y;
}
int maxn=0;
for (i=1;i<=100000;i++)
if (a[i])maxn=i;//数据小,随便乱搞
for (i=1;i<=m;i++)
sum[1]+=a[i];
for (i=2;i<=maxn-m;i++){
sum[i]=sum[i-1]-a[i-1];
sum[i]+=a[i+m-1];
}
sort(sum+1,sum+maxn+1,cmp);
cout<<sum[1]<<endl;
return 0;
}
emmmm