3831: 灌溉花园

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:13 解决:7

题目描述

有一个长度为 n 的花园,从 0 到 n 标记了 n+1 个点。花园里有 n+1 个水龙头,第 i 个水龙头可以灌溉的区域是 [i - ranges[i], i + ranges[i]](其中 ranges[i] 是非负整数)。 你需要打开最少数量的水龙头,使得整个花园(从 0 到 n 的所有点)都能被灌溉。如果无法灌溉整个花园,返回 -1。

输入

第一行输入一个整数 n(1 ≤ n ≤ 1000),表示花园的长度(信奥适配:降低原题 n ≤ 10^4 的限制,适配信奥数据范围)。 第二行输入 n+1 个非负整数,表示数组 ranges(0 ≤ ranges[i] ≤ 1000)。

输出

输出一个整数,表示灌溉整个花园需要打开的最少水龙头数量;若无法灌溉,输出 -1。

样例输入 复制

5
3 4 1 1 0 0

样例输出 复制

1