AT_abc256_b [ABC256B] Batters
题目描述
高桥君想制作一个以棒球为主题的游戏,但他在编写代码时遇到了困难。
请你替高桥君编写一个程序,解决下面的问题。
有 $4$ 个格子,编号分别为 $0$、$1$、$2$、$3$。初始时所有格子上都没有棋子。
还有一个整数 $P$,初始时 $P=0$。
给定一个由正整数组成的数列 $A=(A_1, A_2, \dots, A_N)$,对于 $i=1,2,\dots,N$,依次进行如下操作:
1. 在格子 $0$ 上放置 $1$ 个棋子。
2. 将所有棋子向编号增加 $A_i$ 的格子移动。换句话说,如果某个棋子在格子 $x$ 上,则将其移动到格子 $x+A_i$ 上。
但如果移动后的格子不存在(即 $x+A_i \geq 4$),则将这些棋子移出棋盘,并将被移出的棋子数量加到 $P$ 上。
请输出所有操作结束后 $P$ 的值。
输入格式
输入以如下格式从标准输入给出。
$N$ $A_1$ $A_2$ $\dots$ $A_N$
输出格式
请输出操作结束时 $P$ 的值。
说明/提示
## 限制条件
- $1 \leq N \leq 100$
- $1 \leq A_i \leq 4$
- 输入的所有值均为整数
## 样例解释 1
操作过程如下,操作结束时 $P$ 的值为 $3$。
- $i=1$ 时的操作
1. 在格子 $0$ 上放置一个棋子。此时格子 $0$ 上有一个棋子。
2. 将所有棋子向前移动 $1$ 个格子。移动后,格子 $1$ 上有一个棋子。
- $i=2$ 时的操作
1. 在格子 $0$ 上放置一个棋子。此时格子 $0$ 和格子 $1$ 上各有一个棋子。
2. 将所有棋子向前移动 $1$ 个格子。移动后,格子 $1$ 和格子 $2$ 上各有一个棋子。
- $i=3$ 时的操作
1. 在格子 $0$ 上放置一个棋子。此时格子 $0$、$1$、$2$ 上各有一个棋子。
2. 将所有棋子向前移动 $3$ 个格子。此时,格子 $1$ 和格子 $2$ 上的棋子移动后分别到达 $4$ 和 $5$,超出了格子范围,因此被移出棋盘,$P$ 增加 $2$,此时 $P=2$。移动后,格子 $3$ 上有一个棋子。
- $i=4$ 时的操作
1. 在格子 $0$ 上放置一个棋子。此时格子 $0$ 和格子 $3$ 上各有一个棋子。
2. 将所有棋子向前移动 $2$ 个格子。此时,格子 $3$ 上的棋子移动后到达 $5$,超出了格子范围,因此被移出棋盘,$P$ 增加 $1$,此时 $P=3$。移动后,格子 $2$ 上有一个棋子。
# 样例解释 2
在操作过程中,$P$ 的值也有可能不会发生变化。
由 ChatGPT 4.1 翻译