小红打怪
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

n个怪物排成一排,小红和队友们准备进攻这些怪物。
小红的技能是全体打击,对所有怪物造成1点伤害。
队友1的技能是单体打击,对单体怪物造成1点伤害。
队友2的技能是范围攻击,对相邻的两只怪物分别造成1点伤害(可以对死去的怪物尸体释放该技能)。

每回合每个人均可释放1次技能。小红想知道,击杀全部怪物最少需要多少回合?

输入描述:

第一行输入一个正整数n,代表怪物的总数。
第二行输入n个正整数a_i,代表每个怪物的血量。
2\leq n \leq 10^5
1\leq a_i \leq 10^9

输出描述:

一个整数,代表击杀全部怪物的最少回合数。
示例1

输入

复制
5
1 2 3 4 5

输出

复制
2

说明

第一回合,小红攻击全体怪物,队友1攻击5号怪物,队友2攻击4号和5号怪物,剩余每只怪物血量为[0,1,2,2,2]。
第二回合,小红攻击全体怪物,队友1攻击5号怪物,队友2攻击3号和4号怪物,即可击杀所有怪物。