B4512 [四川青少年 C++ 算法设计大赛 2025] 晕头转向
题目描述
小明自认为方向感很好,请小红来测试。小红先让小明面对北方立正站好,然后发出 **向左转**、**向右转** 或 **向后转** 的命令。每个命令执行后,小明都正确地说出了他面对的方向。
命令是以数字方式表达:$ 0 $ 代表 **向左转**,$ 1 $ 代表 **向右转**,$ 2 $ 代表 **向后转**。
例如当小红连续发出五个命令:$ 0, 1, 0, 0, 1 $,小明会连续回答五个方向:西、北、西、南、西。
然而,如果小明连续 **向左转** 满 $ x $ 次或连续 **向右转** 满 $ x $ 次,他就会晕眩,接下来的 $ y $ 次命令,他都会执行成 **向后转**。$ y $ 次命令结束后,小明的晕眩状态就会解除。
输入格式
输入共三行。
第一行是一个正整数 $ n $,代表命令的条数;
第二行是 $ n $ 个整数,每个整数是 $ 0 $、$ 1 $ 或 $ 2 $,代表小红发出的口令。
第三行是两个整数 $ x, y $($ x, y \leq 10 $)。
输出格式
一个整数,代表小明回答 **南** 的次数。
说明/提示
### 【样例 1 解释】
在执行第 $ 3 $ 个和第 $ 6 $ 个指令的时候小明处于晕眩状态,所以小明的朝向依次是 西、南、北、东、南、北、南。
### 【样例 2 解释】
$ y = 0 $ 表示小明不会晕眩,小明的朝向依次是 西、东、南、北、西、南、西、东。
### 【子任务】
::cute-table{tuack}
| 测试点编号 | $ y $ | 备注 |
|:-:|:-:|:-:|
| $1$ | $ = 0 $ | 小明只会向左转,且一定不会转晕 |
| $2$ | ^ | ^ |
| $3$ | ^ | 小明一定不会转晕 |
| $4$ | ^ | ^ |
| $5$ | $ \leq 100 $ | 小明只会向左转 |
| $6$ | ^ | ^ |
| $7$ | ^ | 无 |
| $8$ | ^ | ^ |
| $9$ | ^ | ^ |
| $10$ | ^ | ^ |
对于 $ 100\% $ 的数据,有 $ 1 \leq n \leq 10000 $,$ 1 \leq x \leq 10 $,$ 0 \leq y \leq 100 $。