开始: 2026-05-06 00:00:00

25-26赛季联合赛09

结束: 2026-05-11 00:00:00
当前  2026-06-17 11:55:53  类型: IOI  状态: 已经结束 

P2. 棋盘游戏
描述

小Z想制作一个以棋子为主题的游戏,但他在编写代码时遇到了困难。  

请你替小Z编写一个程序,解决下面的问题。

k 个格子,编号分别为 0123 \cdots k-1。初始时所有格子上都没有棋子。  

还有一个整数 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 k),则将这些棋子移出棋盘,并将被移出的棋子数量加到 P 上。

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


输入

第一行两个数字,K,N表示棋盘的大小和移动的次数;

第二行Na_i表示每次移动的距离;

输出

移动出去的棋子数量P;

样例

输入

4 4
1 1 3 2

输出

3

输入

4 10
2 2 4 1 1 1 4 2 2 1

输出

8
提示

其中20%的数据:- k=4,1 \leq N \leq 100,1 \leq A_i \leq 4;

另外有40%的数据:- k\leq 1000,1 \leq N \leq 1000,1 \leq A_i \leq 10;

最后的40%数据:- k\leq 1000,1 \leq N \leq 10^6,1 \leq A_i \leq 10^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 上放置一个棋子。此时格子 012 上各有一个棋子。  

  2. 将所有棋子向前移动 3 个格子。此时,格子 1 和格子 2 上的棋子移动后分别到达 45,超出了格子范围,因此被移出棋盘,P 增加 2,此时 P=2。移动后,格子 3 上有一个棋子。


- i=4 时的操作  

  1. 在格子 0 上放置一个棋子。此时格子 0 和格子 3 上各有一个棋子。  

  2. 将所有棋子向前移动 2 个格子。此时,格子 3 上的棋子移动后到达 5,超出了格子范围,因此被移出棋盘,P 增加 1,此时 P=3。移动后,格子 2 上有一个棋子。



提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交