#p4279. 习题2.2.5 扑克

习题2.2.5 扑克

扑克 poker.cpp

题目描述

小x在玩一种特殊的扑克,这个扑克一共有N(1 <= N <= 100,000)种不同的点数,点数分别是1..N。

这种扑克只能按照顺子的方式出,比如:2 3 4 5是一个顺子,单独的2也是顺子。一个顺子为一手牌。

现在给你小x手里的牌,最少多少手牌能将小x的牌出完。

输入格式 poker.in

第一行一个整数N。

接下来N行,每行一个整数Xi,表示点数为i的牌数一共有Xi张。(0Xi1000000 \leq X_i \leq 100000).

输出格式 poker.out

一个整数,最少多少手牌能将牌出完。

样例数据

input


5

2

4

1

2

3

output


6

5种点数,点数为1的有2张,点数为2的有4张,依次类推。

6次将牌出完:1..5,1..2,2,2,4..5,5 一共6手牌。

数据规模与约定

30% N<=400

50% N<=8000

100% 如题目描述

时间限制:1s1 \text {s}

空间限制:256MB256 \text {MB}