CF1933B Turtle Math: Fast Three Task
题目描述
给定一个数组 $a_1, a_2, \ldots, a_n$。
每次操作,你可以执行以下两种操作之一:
- 从数组中选择一个元素并将其移除。这样,数组的长度减少 $1$;
- 从数组中选择一个元素,并将其值加 $1$。
你可以进行任意次数的操作。如果当前数组为空,则不能再进行任何操作。
你的任务是求出使数组 $a$ 的元素和能够被 $3$ 整除所需的最小操作次数。可能不需要进行任何操作。
注意,空数组(长度为 $0$ 的数组)的元素和等于 $0$。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$)。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^4$)。
所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示所需的最小操作次数。
说明/提示
在第一个测试用例中,初始数组 $a = [2, 2, 5, 4]$。一种最优的操作方式是:
- 移除当前的第 $4$ 个元素,得到 $a = [2, 2, 5]$;
此时数组 $a$ 的元素和可以被 $3$ 整除(确实,$a_1 + a_2 + a_3 = 2 + 2 + 5 = 9$)。在第二个测试用例中,初始数组的和为 $1+3+2=6$,可以被 $3$ 整除,因此不需要进行任何操作,答案为 $0$。
在第四个测试用例中,初始数组的和为 $1$,不能被 $3$ 整除。移除唯一的元素后,得到一个空数组,其和为 $0$,因此答案为 $1$。
由 ChatGPT 4.1 翻译