AT_dwango2017qual_c スキーリフトの相乗り

题目描述

热爱滑雪的拓实在尼可尼可滑雪场当上了缆车管理员。这里的缆车每次可以载 $4$ 人,访客们通常以 $1$ 到 $4$ 人的小组排队乘坐。 某天,因排队等待的人数过多,拓实打算对游客进行合理拼车,以缓解排队压力。他制定了以下分组规则: - 每次一辆缆车到达时,首先让排队最前面的小组上车。 - 只要缆车还有空间且不超过载客量,他就会继续安排其他小组拼车。**如果有多个小组可供选择,可以不按排队顺序,随意选择任何一个合适的小组。** 现有 $N$ 个小组在排队,且从前到后第 $i\ (1 \le i \le N)$ 个小组有 $A_i$ 人。请你帮拓实计算出,至少需要多少辆缆车,才能将所有人送达。

输入格式

输入包含两部分,从标准输入读取: > $N$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

输出单独一行,表示将所有小组运送完毕所需的最少缆车数量。**记得在结尾加上换行符。**

说明/提示

### 约束条件 - $1 \le N \le 10^5$ - $1 \le A_i \le 4$ ### 示例解释 1 只要缆车里人数不超过 $4$,拓实就能安排多个小组一起乘坐。 ### 示例解释 2 例如,以下安排方式能够在 $4$ 辆缆车内完成所有小组的运输: - 第 $1$ 辆缆车载第 $1$ 和第 $5$ 小组。 - 第 $2$ 辆缆车载第 $2$ 和第 $4$ 小组。 - 第 $3$ 辆缆车载第 $3$ 小组。 - 第 $4$ 辆缆车载第 $6$ 小组。 **本翻译由 AI 自动生成**