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 翻译