Problem6715--闯关游戏

6715: 闯关游戏

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

闯关类游戏节目在前些年特别的火爆,各个卫视都有这一类的节目。节目中的参赛选手如果稍微失误就会落水。不过随着观众要求的提高闯关类的节目也要创新,要获得收视率就要相处更好的方式观众才会买账。现在,JZLB tv 决定搞一档全国独一无二的闯关节目,导演组决定在选手们常见的关卡之外设计一个新的关卡。这个关卡将 n 个高低不同的柱子排成一排,每个柱子上面都有一张卡片,卡片上写着跳到这个柱子选手将获得多少分数。选手要从这个关卡的起点跳到终点,选手们只能往终点跳跃,不能往回跳。导演组为了增加节目效果规定了选手每次跳跃的柱子高度差不能超过 m 米。
现在导演组想请你设计一个程序帮助导演组计算一位参赛选手最多能在这个关卡获得多少分。

Input

第一行给定两个 n 和 m,代表这个关卡有多少柱子和每次跳跃的两根柱子间的高度差不能超过 m 米。
接下来有 n 行,每行两个整数$h_i$和$S_i$代表第 i 根柱子的高度和跳到这个柱子所能获得的分数。

Output

一行一个整数,代表这个关卡选手能获得的最大分数。

Constraints

对于$30\%$的数据: $n\leq 5000$
对于$100\%$的数据:$1\leq n \leq200000,1 \leq m \leq500$
对于每根柱子的$h_i$,$s_i$, $1 \leq h_i \leq 1000000,1 \leq s_i \leq 1000000$

Sample 1 Input

4 4
1 0
2 100
100 5
6 10

Sample 1 Output

110
从 2 跳到 6,高度差小于 4 可行,故答案是 110

Source/Category

久智乐博