#aBC256B. [ABC256B] Batters

[ABC256B] Batters

AT_abc256_b [ABC256B] Batters

题目描述

高桥君想制作一个以棒球为主题的游戏,但他在编写代码时遇到了困难。
请你替高桥君编写一个程序,解决下面的问题。

44 个格子,编号分别为 00112233。初始时所有格子上都没有棋子。
还有一个整数 PP,初始时 P=0P=0
给定一个由正整数组成的数列 A=(A1,A2,,AN)A=(A_1, A_2, \dots, A_N),对于 i=1,2,,Ni=1,2,\dots,N,依次进行如下操作:

  1. 在格子 00 上放置 11 个棋子。
  2. 将所有棋子向编号增加 AiA_i 的格子移动。换句话说,如果某个棋子在格子 xx 上,则将其移动到格子 x+Aix+A_i 上。
    但如果移动后的格子不存在(即 x+Ai4x+A_i \geq 4),则将这些棋子移出棋盘,并将被移出的棋子数量加到 PP 上。

请输出所有操作结束后 PP 的值。

输入格式

输入以如下格式从标准输入给出。

NN A1A_1 A2A_2 \dots ANA_N

输出格式

请输出操作结束时 PP 的值。

输入输出样例 #1

输入 #1

4
1 1 3 2

输出 #1

3

输入输出样例 #2

输入 #2

3
1 1 1

输出 #2

0

输入输出样例 #3

输入 #3

10
2 2 4 1 1 1 4 2 2 1

输出 #3

8

说明/提示

限制条件

  • 1N1001 \leq N \leq 100
  • 1Ai41 \leq A_i \leq 4
  • 输入的所有值均为整数

样例解释 1

操作过程如下,操作结束时 PP 的值为 33

  • i=1i=1 时的操作

    1. 在格子 00 上放置一个棋子。此时格子 00 上有一个棋子。
    2. 将所有棋子向前移动 11 个格子。移动后,格子 11 上有一个棋子。
  • i=2i=2 时的操作

    1. 在格子 00 上放置一个棋子。此时格子 00 和格子 11 上各有一个棋子。
    2. 将所有棋子向前移动 11 个格子。移动后,格子 11 和格子 22 上各有一个棋子。
  • i=3i=3 时的操作

    1. 在格子 00 上放置一个棋子。此时格子 001122 上各有一个棋子。
    2. 将所有棋子向前移动 33 个格子。此时,格子 11 和格子 22 上的棋子移动后分别到达 4455,超出了格子范围,因此被移出棋盘,PP 增加 22,此时 P=2P=2。移动后,格子 33 上有一个棋子。
  • i=4i=4 时的操作

    1. 在格子 00 上放置一个棋子。此时格子 00 和格子 33 上各有一个棋子。
    2. 将所有棋子向前移动 22 个格子。此时,格子 33 上的棋子移动后到达 55,超出了格子范围,因此被移出棋盘,PP 增加 11,此时 P=3P=3。移动后,格子 22 上有一个棋子。

样例解释 2

在操作过程中,PP 的值也有可能不会发生变化。

由 ChatGPT 4.1 翻译