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 $。