#XMOJ10573. 每日菜单

每日菜单

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:menu.in 输出文件:menu.out

小明是一位美食博主,他正在规划未来 $n$ 天的每日菜单。每天,他可以选择做一道主菜,或者做一道甜品,当然也可以选择点外卖休息。

他的厨房里有两类主要电器:烤箱和料理台。每天这两样电器的可用状态不同,用数字表示:

  • $0$:当天烤箱和料理台都无法使用。
  • $1$:仅烤箱可用(适合做甜品)。
  • $2$:仅料理台可用(适合做主菜)。
  • $3$:烤箱和料理台均可使用。

小明给自己定了一个原则:他不能连续两天做同一种类型的菜。也就是说,如果今天做主菜,明天就不能再做主菜;如果今天做甜品,明天就不能再做甜品。点外卖休息则没有限制。

请你帮小明计算,在这 $n$ 天里,他最少需要点多少天外卖(即没有下厨的天数),才能在不违反原则的情况下,充分利用可用的厨房电器。

输入格式

第一行是一个整数 $n$,表示规划的总天数。

第二行包含 $n$ 个整数 $a_1$、$a_2$、……、$a_n$,每个数代表当天的厨房电器可用状态,具体含义见题目描述。

输出格式

输出一个整数,表示最少需要点外卖的天数。

样例

样例 1

4
1 3 2 0

2

样例说明:可以安排第 11 天做甜品(烤箱可用),第 33 天做主菜(料理台可用)。第 22 天不能连续做甜品,第 44 天厨房完全不能用,所以这两天只能点外卖,最少点 22 天外卖。

样例 2

7
1 3 3 2 1 2 3

0

样例说明:

可以交替安排菜品,例如第 11 天甜品,第 22 天主菜,第 33 天甜品……由于每天都有至少一种电器可用,可以做到每天都下厨,因此点外卖天数为 00。

样例 3

2
2 2

1

样例说明:

两天都只有料理台可用,只能做主菜。但不能连续两天都做主菜,所以其中一天必须点外卖,最少点 11 天外卖。

数据范围

对于 $60\%$ 的数据,$1 \le n \le 1000$

对于 $100\%$ 的数据,$1 \le n \le 10^5$