CF573B Bear and Blocks
题目描述
Limak 是一只爱玩耍的小熊。今天他正在玩摧毁积木塔的游戏。他在一排中搭建了 $n$ 个积木塔,第 $i$ 个塔由 $h_{i}$ 个完全相同的积木块组成。如要了解详情,请参见第一个样例的图片。
Limak 会重复以下操作,直到所有积木塔都被摧毁。
一个积木块如果上下左右四个方向都有相邻的积木块或者地面,则称为“内部积木块”;否则就是“边界积木块”。在一次操作中,Limak 会同时摧毁所有的边界积木块。他的动作非常快,可以在同一时间内摧毁所有这些积木块。
Limak 已经准备好了开始。你的任务是计算他需要多少次操作才能摧毁所有的积木塔。
输入格式
第一行包含一个整数 $n$($1\le n\le 10^{5}$)。
第二行包含 $n$ 个用空格分隔的整数 $h_1, h_2, ..., h_n$($1\le h_i\le 10^{9}$),表示每个积木塔的高度。
输出格式
输出摧毁所有积木塔所需要的操作次数。
说明/提示
下图展示了第一个样例测试的三次操作过程。每次操作中用红色标记了边界积木块。

第一次操作后还剩下四个积木块,第二次操作后只剩下一个积木块,最后一次操作摧毁了这最后一个积木块。
由 ChatGPT 5 翻译