CF1490B.Balanced Remainders

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

Balanced Remainders

题目描述

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

我们用 c0c_0、c1c_1 和 c2c_2 分别表示数组 aa 中除以 33 余数为 00、11 和 22 的元素个数。如果 c0c_0、c1c_1 和 c2c_2 三者相等,则称数组 aa 的余数是平衡的。

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

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

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

输入格式

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

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

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

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1000 \leq a_i \leq 100)。

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

输出格式

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

说明/提示

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

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

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

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

第四个测试用例,c0c_0、c1c_1 和 c2c_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

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