A41309.跳格子

普及/提高-

官方

通过率:74.07%

时间限制:1.00s

内存限制:256MB

题目描述

假期到了,你和你的同伴们玩一个跳格子游戏。

这个游戏由3000130001个格子组成。 这些格子沿一条线均匀分布,从西到东编号为003000030000,每个格子的距离都是单位长度。

众所周知,格子游戏肯定要找宝藏。格子游戏一共藏有nn颗宝石,第ii颗宝石位于编号为aia_i的格子上。

现在游戏的起点为00号格子,凭借着超强的跳跃能力,你会按照以下方式进行跳跃:

  • 首先,你会从00号格子跳到dd号格子。
  • 第二步开始,你将按照以下规则继续跳跃: 令ll为上一次跳跃的长度,那么这一次跳跃,你向前跳跃的长度只能是l1l - 1lll+1l + 1。限制:一次跳跃的长度必须为正,即当l=1l = 1时,你不能进行长度为00的跳转。你随时可以自己决定结束游戏。

如果你到了一个有宝石的格子,你会收集这个格子上的宝石。请问,你最多可以收集到多少宝石。

输入格式

第一行有两个整数n,dn,d,意义如题。
第二行有nn个整数,分别是a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

输出一个整数,表示最多可以收集到的宝石数目。

输入输出样例

  • 输入#1

    4 10
    10 21 27 27

    输出#1

    3
  • 输入#2

    8 8
    9 19 28 36 45 55 66 78

    输出#2

    6

说明/提示

【样例解释】

样例1路线:0 -> 10(1个宝石) -> 19 -> 27(2个宝石)。
样例2路线:0 -> 8 -> 15 -> 21 -> 28(1个宝石) -> 36(1个宝石) -> 45(1个宝石) -> 55(1个宝石) -> 66(1个宝石) -> 78(1个宝石)。

【数据范围】

对于前30%30\%数据,1da1a2an151 \leq d \leq a_1 \leq a_2 \leq \cdots \leq a_n \leq 15

对于前70%70\%的数据,1da1a2an50001 \leq d \leq a_1 \leq a_2 \leq \cdots \leq a_n \leq 5000

对于100%100\%的数据,1n300001\leq n \leq 300001da1a2an300001\leq d \leq a_1 \leq a_2 \leq \cdots \leq a_n \leq 30000

首页