九层妖塔
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
80M
Author:
Problem type
Allowed languages
C, C++
九层妖塔
题目描述
小 A 在玩《剑仙》时遇到了一座锁妖塔,想从外部登顶。
锁妖塔共有 \(n\) 层,第 \(i\) 层的高度为 \(h_i\)。小 A 初始在地面(记作第 0 层)。
若用\(爬\)的方式到达第 \(i\) 层,需要花费时间 \(h_i\)。
小 A 还能使用\(仙术跳跃\):一次可以向上跳 \(1 层\)或 \(2 层\),且\(不花费时间\)。
但是\(不能连续跳\)——每次跳跃后,必须先\(爬过至少一层\)(花费相应时间)才能再次使用仙术。
请计算登上塔顶(第 \(n\) 层)的\(最短总时间\)。
输入格式
- 第一行:一个整数 \(n\),表示塔的层数。
- 第二行:\(n\) 个整数 \(h_i\),表示自下而上各层的高度。
输出格式
- 输出一个整数 \(t\),表示从地面登上第 \(n\) 层所需的最短时间。
样例
\(输入\)
5
3 5 1 8 4
\(输出\)
1
\(说明\): 一种最优方案为:地面 \(跳到 2 层\)(0→2,免费)→ \(爬到 3 层\)(+1)→ \(跳到 5 层\)(免费),总时间为 1。
数据范围
\((1 \le n \le 10^6)\)
\((1 \le h_i \le 100)\)
Comments