#4339. Batters

0

Batters

Batters

题目描述

Takahashi 正在尝试创造一个受棒球启发的游戏,但他在编写代码时遇到了困难。
为 Takahashi 编写一个程序来解决如下问题。
有 $4$ 个格子,分别称为格子 $0$、格子 $1$、格子 $2$ 和格子 $3$。最初,所有格子都是空的。
还有一个整数 $P$;最初,$P = 0$。
给定正整数序列 $A = (A_1, A_2, \dots, A_N)$,按以下顺序对 $i = 1, 2, \dots, N$ 执行操作:
    把一枚棋子放到格子 $0$ 上。 把每一枚位于格子 $x$ 的棋子向前推进 $A_i$ 个格子。换句话说,如果格子 $x$ 有一枚棋子,就把该棋子移动到格子 $(x + A_i)$。
    但是,如果某枚棋子的目标格子不存在(即 $x + A_i$ 大于或等于 $4$),就将其移除。将被移除的棋子数量加到 $P$ 上。
在执行完所有操作后,输出 $P$ 的值。

输入格式

输入从标准输入给出,格式如下: NN A1A_1 A2A_2 …\dots ANA_N

输出格式

输出在执行完所有操作后 PP 的值。

4
1 1 3 2
3
3
1 1 1
0
10
2 2 4 1 1 1 4 2 2 1
8

提示

1≤N≤1001 \leq N \leq 100 1≤Ai≤41 \leq A_i \leq 4 输入中的所有数值都是整数。操作如下所述。在执行完所有操作后,PP 等于 33。

i=1i=1 时的操作:

    把一枚棋子放到格子 00 上。现在,格子 00 有一枚棋子。 把每一枚位于格子 xx 的棋子向前推进 11 个格子。经过这些移动后,格子 11 有一枚棋子。

</ol>

i=2i=2 时的操作:

    把一枚棋子放到格子 00 上。现在,格子 00 和格子 11 各有一枚棋子。 把每一枚位于格子 xx 的棋子向前推进 11 个格子。经过这些移动后,格子 11 和格子 22 各有一枚棋子。

</ol>

i=3i=3 时的操作:

    把一枚棋子放到格子 00 上。现在,格子 00、格子 11 和格子 22 各有一枚棋子。 把每一枚位于格子 xx 的棋子向前推进 33 个格子。
    这里,对于位于格子 11 和格子 22 的棋子,目标格子不存在(因为 1+3=41+3=4 和 2+3=52+3=5),因此移除这些棋子并把 22 加到 PP 上。此时 PP 变为 22。 经过这些移动后,格子 33 有一枚棋子。

</ol>

i=4i=4 时的操作:

    把一枚棋子放到格子 00 上。现在,格子 00 和格子 33 各有一枚棋子。 把每一枚位于格子 xx 的棋子向前推进 22 个格子。
    这里,对于位于格子 33 的棋子,目标格子不存在(因为 3+2=53+2=5),因此移除该棋子并把 11 加到 PP 上。此时 PP 变为 33。
    经过这些移动后,格子 22 有一枚棋子。

</ol>
操作不会对 $P$ 的值以外的内容进行更新。

标签: AtCoder|abc256B

来源

AtCoder|abc256B