Type: Default 1000ms 256MiB

弹簧板(加强)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

有一个小球掉落在一串连续的弹簧板上,小球落到某一个弹簧板后,会被弹到右边某一个地点,直到小球被弹到弹簧板以外的地方。

假设有 n 个连续的弹簧板,每个弹簧板占一个单位距离,a[i] 代表代表第 i 个弹簧板会把小球向前弹 a[i] 个距离。比如位置 1 的弹簧能让小球前进 2 个距离到达位置 3。如果小球落到某个弹簧板后,经过一系列弹跳会被弹出弹簧板,那么小球就能从这个弹簧板弹出来。现在希望你计算出小球从任意一个弹簧板落下,最多会被弹多少次后,才会弹出弹簧板。

输入格式

第一个行输入一个 n 代表一共有 n(1n100000)n (1 \le n \le 100000)个弹簧板。第二行输入 n 个数字,中间用空格分开。第 i 个数字 ai(1ai30)a_i(1 \le a_i \le 30)代表第 i 个弹簧板可以让小球移动的距离。

输出格式

输出一个整数,代表小球最多经过多少次才能弹出弹簧板。

输出时每行末尾的多余空格,不影响答案正确性

要求使用「文件输入输出」的方式解题,输入文件为 spring.in,输出文件为 spring.out

样例输入

5
2 2 3 1 2

样例输出

3

递推(简单dp)

Not Claimed
Status
Done
Problem
11
Open Since
2024-9-28 0:00
Deadline
2024-10-6 23:59
Extension
24 hour(s)