#4134. 击球手(Baters)

击球手(Baters)

题目描述

小高正在尝试创建一个受棒球启发的游戏,但他在编写代码时遇到了困难。请为小高编写一个程序来解决以下问题。
44个称为方格00、方格11、方格22和方格33的方格。最初,所有方格都是空的。还有一个整数PP;最初,P=0P = 0
给定一个正整数序列A=(A1,A2,...,AN)A = (A_1, A_2, ..., A_N),按顺序执行以下操作,i=1,2,...,Ni = 1, 2, ..., N

  • 在方格00上放置一个棋子。

  • 将每个方格上的棋子向前移动AiA_i个方格。换句话说, 如果方格xx有一个棋子,将该棋子移动到方格(x+Ai)(x + A_i)

    但是,如果目标方格不存在(即x+Aix + A_i大于或等于4)对于一个棋子,则移除它。将PP增加移除的棋子数量。

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

输入格式

输入从标准输入中以下列格式给出:
NN
A1A_1 A2A_2 \cdots 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说明】
操作描述如下。执行完所有操作后,P等于3。

  • ii=1的操作:

    • 在方格0上放置一个棋子。现在,方格0有一个棋子。
    • 将每个方格上的棋子向前移动1个方格。这些移动后,方格1有一个棋子。
  • ii=2的操作:

    • 在方格0上放置一个棋子。现在,方格0和1各有一个棋子。
    • 将每个方格上的棋子向前移动1个方格。这些移动后,方格1和2各有一个棋子。
  • ii=3的操作:

    • 在方格0上放置一个棋子。现在,方格0、1和2各有一个棋子。
    • 将每个方格上的棋子向前移动3个方格。

    这里,对于方格1和2上的棋子,目标方格不存在(因为1+3=4和2+3=5),所以移除这些棋子并将2加到P。P现在等于2。这些移动后,方格3有一个棋子。

  • ii=4的操作:

    • 在方格0上放置一个棋子。现在,方格0和3各有一个棋子。
    • 将每个方格上的棋子向前移动2个方格。

    这里,对于方格3上的棋子,目标方格不存在(因为3+2=5),所以移除这个棋子并将1加到P。P现在等于3。

这些移动后,方格2有一个棋子。

【样例2说明】
P的值可能不会被操作更新。

数据范围

  • 1N1001 ≤ N ≤ 100
  • 1Ai41 ≤ A_i ≤ 4

所有输入值都是整数

来源

  • AtCoder ABC256B