九层妖塔


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

There are no comments at the moment.