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