CF698A Vacations

题目描述

Vasya 有 $n$ 天的假期!所以他决定提升自己的 IT 技能并锻炼身体。对每一天,Vasya 都知道当天的健身房是否开放,以及当天是否有互联网编程比赛。对于第 $i$ 天,有以下四种情况: 1. 这一天健身房关闭,也没有比赛; 2. 这一天健身房关闭,但有比赛; 3. 这一天健身房开放,但没有比赛; 4. 这一天健身房开放,也有比赛。 在每一天,Vasya 可以选择休息,或者参加比赛(如果这一天有比赛),或者锻炼(如果这一天健身房开放)。 请你求出 Vasya 至少需要休息多少天(也就是既没有锻炼,也没有参加比赛的天数)。Vasya 惟一的限制是:他不想连续两天做同样的活动,也就是说,他不会连续两天都锻炼,也不会连续两天都参加比赛。

输入格式

第一行包含一个正整数 $n$($1 \leq n \leq 100$),表示假期的天数。 第二行包含 $n$ 个用空格分隔的整数 $a_{1}, a_{2}, \ldots, a_{n}$($0 \leq a_{i} \leq 3$),其中: - 如果第 $i$ 天健身房关闭且没有比赛,则 $a_i = 0$; - 如果第 $i$ 天健身房关闭,但有比赛,则 $a_i = 1$; - 如果第 $i$ 天健身房开放,但没有比赛,则 $a_i = 2$; - 如果第 $i$ 天健身房开放,也有比赛,则 $a_i = 3$。

输出格式

输出一行,包含一个整数,表示 Vasya 至少需要休息多少天。请记住,Vasya 拒绝: - 连续两天都锻炼, - 连续两天都参加比赛。

说明/提示

在第一个测试用例中,Vasya 可以在第 1 天参加比赛,在第 3 天锻炼,因此只需要休息 2 天。 在第二个测试用例中,Vasya 可以在第 1、3、5、7 天参加比赛,其余天锻炼,因此不需要休息。 在第三个测试用例中,Vasya 只能在第 1 天或第 2 天锻炼一次,不能连续两天锻炼,因此只需休息 1 天。 由 ChatGPT 5 翻译