CF1490B.Balanced Remainders

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Balanced Remainders

题目描述

给定一个整数 nn(保证 nn 能被 33 整除)和一个数组 a[1n]a[1 \dots n]。每次操作,你可以将数组中的任意一个元素加 11。具体来说,你可以选择一个下标 ii1in1 \le i \le n),并将 aia_i 替换为 ai+1a_i + 1。同一个下标 ii 可以被多次选择进行操作。

我们用 c0c_0c1c_1c2c_2 分别表示数组 aa 中除以 33 余数为 001122 的元素个数。如果 c0c_0c1c_1c2c_2 三者相等,则称数组 aa 的余数是平衡的。

例如,如果 n=6n = 6a=[0,2,5,5,4,8]a = [0, 2, 5, 5, 4, 8],则可以进行如下操作:

  • 初始时 c0=1c_0 = 1c1=1c_1 = 1c2=4c_2 = 4,三者不相等。将 a3a_311,此时 a=[0,2,6,5,4,8]a = [0, 2, 6, 5, 4, 8]
  • 此时 c0=2c_0 = 2c1=1c_1 = 1c2=3c_2 = 3,三者仍不相等。将 a6a_611,此时 a=[0,2,6,5,4,9]a = [0, 2, 6, 5, 4, 9]
  • 此时 c0=3c_0 = 3c1=1c_1 = 1c2=2c_2 = 2,三者仍不相等。将 a1a_111,此时 a=[1,2,6,5,4,9]a = [1, 2, 6, 5, 4, 9]
  • 此时 c0=2c_0 = 2c1=2c_1 = 2c2=2c_2 = 2,三者相等,说明数组 aa 的余数已经平衡。

请你求出使数组 aa 的余数平衡所需的最少操作次数。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来每个测试用例包含两行:

第一行包含一个整数 nn3n31043 \le n \le 3 \cdot 10^4),表示数组 aa 的长度。保证 nn 能被 33 整除。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n0ai1000 \leq a_i \leq 100)。

保证所有测试用例中 nn 的总和不超过 150000150\,000

输出格式

对于每个测试用例,输出一个整数,表示使数组 aa 的余数平衡所需的最少操作次数。

说明/提示

第一个测试用例的过程已在题目描述中给出。

第二个测试用例,你需要对 i=2i=2 进行一次操作。

第三个测试用例,你需要进行三次操作:

  • 第一次操作:i=9i=9
  • 第二次操作:i=9i=9
  • 第三次操作:i=2i=2

第四个测试用例,c0c_0c1c_1c2c_2 初始时就相等,因此数组 aa 已经是余数平衡的。

由 ChatGPT 4.1 翻译

样例

4
6
0 2 5 5 4 8
6
2 0 2 1 0 0
9
7 1 3 4 2 10 3 9 6
6
0 1 2 3 4 5
3
1
3
0

在线编程 IDE

建议全屏模式获得最佳体验