#A5234. 草坪浇水

草坪浇水

题目背景

一片草坪被分成 n 块,从左到右编号 1 到 n,一开始每块草的高度都是 0。

园丁每次可以挑一段连续的草地 [l, r],给这一段里的每块地都浇 1 单位水(于是这一段每块地的高度都 +1)。

园丁希望最终第 i 块地的高度恰好为 h_i。他想知道,最少要浇多少次。

题目描述

给定目标高度 h_1, h_2, …, h_n(草地初始高度全为 0)。每次操作可以选一段连续区间 [l, r],把其中每块地的高度都 +1。求让第 i 块地的高度恰好为 h_i 所需的最少操作次数。

输入格式

第一行一个整数 n。

第二行 n 个整数 h_1, h_2, …, h_n,表示每块地的目标高度。

输出格式

一个整数,表示最少操作次数。

输入输出样例

3
1 3 2
3

样例 1 解释

可以这样浇 3 次:先给 [1,3] 浇一次(高度变成 1 1 1),再给 [2,3] 浇一次(1 2 2),最后给 [2,2] 浇一次(1 3 2)。3 次刚好达成,少于 3 次做不到。

说明/提示

- 1 ≤ n ≤ 10^5 - 0 ≤ h_i ≤ 10^9 - 答案可能很大,注意使用合适的数据类型