#dwango2017qualc. [dwango2017qual_c]スキーリフトの相乗り
[dwango2017qual_c]スキーリフトの相乗り
问题文
喜欢滑雪的小孝开始在NicoNico滑雪场做升降机工作。这个滑雪场有一台每台搬运器(椅子)能容纳4个人的升降机,并且有1台这样的升降机。滑雪客以1人到4人的团队形式排队等候上升。
某一天,小孝困扰于升降机的排队队列长度太长,于是他想要让滑雪客们共乘升降机。小孝决定按照以下步骤将滑雪客的团队引导至各个搬运器:
- 首先,引导排在队列最前面的团队上升。
- 只要存在可以共乘当前搬运器而不超过定员的团队,就引导这样的团队上升。但是,如果存在多个这样的团队,则不论位置如何,都可以引导任意一个团队。
现在,有N个滑雪客的团队排队等候,从队列的开头到第i (1 ≤ i ≤ N)个团队的成员数为Ai。请问,通过小孝巧妙地引导滑雪客的团队,最少需要多少台升降机才能将所有团队运送完毕。
制约条件
- 1 ≤ N ≤
- 1 ≤ Ai ≤ 4
输入
从标准输入中按以下格式输入。
N A1 A2 : AN
输出
输出以1行的形式给出为了将所有团队都运送完毕所需的升降机数量。最后要输出换行符。
输入例子1
3
1
1
2
输出例子1
1
只要总数不超过4人,小孝可以将任意多个团队引导至同一台升降机。
输入例子2
6
3
1
4
2
1
2
输出例子2
4
例如,按照以下方式引导滑雪客,就可以用4台升降机将所有团队运送完毕。
- 将第1个团队和第5个团队引导至第1台升降机。
- 将第2个团队和第4个团队引导至第2台升降机。
- 将第3个团队引导至第3台升降机。
- 将第6个团队引导至第4台升降机。