过桥
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

被困在了一个迷幻森林,现在她面前有一条凶险的大河,河中央有个神奇的浮块,浮块按顺序标号,但两两并不相接,第个浮块上有一个数字,可能是正数,也可能是负数,每块浮块都附带一个魔法结界用于传送,当为正数时,可以选择传送到第个浮块上,当抵达号浮块时才可以顺利脱身,显然不管是多少,都没有任何意义,当为负时,只能选择标号小于等于的任意一块浮块进行传送,当时,默认只能传送到的位置,每次传送都会花费的时间,随着时间的流逝,迷雾森林的空气会被逐渐榨干,她现在在号浮块,她想知道,她最快多久能顺利脱身,如果始终无法逃脱,请输出

输入描述:

第一行一个数n(2≤n≤2000)
接下来一行n个数a[i](1≤|a[i]|≤2000)表示浮块上的数字

输出描述:

输出一行,表示对应的答案
示例1

输入

复制
4
2 2 -1 2

输出

复制
2

说明

1跳到2,1s
2跳到4,1s
共2s 

示例2

输入

复制
2
-1 -2

输出

复制
-1