CF999D Equalize the Remainders

题目描述

给定一个包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ 的数组,以及一个正整数 $m$。保证 $m$ 是 $n$ 的约数。 每次操作,你可以选择任意一个位置 $i$($1 \leq i \leq n$),并将 $a_i$ 增加 $1$。 定义 $c_r$($0 \leq r \leq m-1$)为数组中模 $m$ 余数为 $r$ 的元素个数。也就是说,对于每个余数,统计数组 $a$ 中对应余数的元素数量。 你的任务是通过若干次操作,使得 $c_0 = c_1 = \dots = c_{m-1} = \frac{n}{m}$。 请你求出满足上述要求所需的最小操作次数。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$($1 \leq n \leq 2 \times 10^5, 1 \leq m \leq n$)。保证 $m$ 是 $n$ 的约数。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \leq a_i \leq 10^9$),表示数组的元素。

输出格式

第一行输出一个整数,表示满足条件所需的最小操作次数。 第二行输出任意一个满足条件且经过最少操作得到的数组。结果数组中的每个元素不得超过 $10^{18}$。

说明/提示

由 ChatGPT 4.1 翻译