AT_abc419_e [ABC419E] Subarray Sum Divisibility
题目描述
给定一个长度为 $N$ 的整数序列 $A = (A_1, A_2, \ldots, A_N)$。
你的目标是反复执行如下操作,使得对于 $A$ 的每一个长度为 $L$ 的连续子数组,其元素和都是 $M$ 的倍数。
- 选择一个整数 $i$,其中 $1 \leq i \leq N$,并将 $A_i$ 的值增加 $1$。
请你求出在达成目标前,最少需要执行多少次操作。
输入格式
输入从标准输入读取,格式如下:
> $N$ $M$ $L$
>
> $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
输出答案。
说明/提示
### 样例解释 1
通过选择 $i = 2$ 执行一次操作,选择 $i = 3$ 执行两次操作,选择 $i = 4$ 执行一次操作,总共进行了四次操作后,可以得到 $A = (4, 3, 3, 4)$,此时每个长度为 $3$ 的连续子数组的元素和都是 $5$ 的倍数。
### 数据范围
- $1 \leq N, M \leq 500$
- $1 \leq L \leq N$
- $0 \leq A_i < M$
- 所有输入值均为整数。
由 ChatGPT 4.1 翻译