CF1490B.Balanced Remainders

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a number nn (divisible by 33 ) and an array a[1n]a[1 \dots n] . In one move, you can increase any of the array elements by one. Formally, you choose the index ii ( 1in1 \le i \le n ) and replace aia_i with ai+1a_i + 1 . You can choose the same index ii multiple times for different moves.

Let's denote by c0c_0 , c1c_1 and c2c_2 the number of numbers from the array aa that have remainders 00 , 11 and 22 when divided by the number 33 , respectively. Let's say that the array aa has balanced remainders if c0c_0 , c1c_1 and c2c_2 are equal.

For example, if n=6n = 6 and a=[0,2,5,5,4,8]a = [0, 2, 5, 5, 4, 8] , then the following sequence of moves is possible:

  • initially c0=1c_0 = 1 , c1=1c_1 = 1 and c2=4c_2 = 4 , these values are not equal to each other. Let's increase a3a_3 , now the array a=[0,2,6,5,4,8]a = [0, 2, 6, 5, 4, 8] ;
  • c0=2c_0 = 2 , c1=1c_1 = 1 and c2=3c_2 = 3 , these values are not equal. Let's increase a6a_6 , now the array a=[0,2,6,5,4,9]a = [0, 2, 6, 5, 4, 9] ;
  • c0=3c_0 = 3 , c1=1c_1 = 1 and c2=2c_2 = 2 , these values are not equal. Let's increase a1a_1 , now the array a=[1,2,6,5,4,9]a = [1, 2, 6, 5, 4, 9] ;
  • c0=2c_0 = 2 , c1=2c_1 = 2 and c2=2c_2 = 2 , these values are equal to each other, which means that the array aa has balanced remainders.

Find the minimum number of moves needed to make the array aa have balanced remainders.

输入格式

The first line contains one integer tt ( 1t1041 \le t \le 10^4 ). Then tt test cases follow.

The first line of each test case contains one integer nn ( 3n31043 \le n \le 3 \cdot 10^4 ) — the length of the array aa . It is guaranteed that the number nn is divisible by 33 .

The next line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n ( 0ai1000 \leq a_i \leq 100 ).

It is guaranteed that the sum of nn over all test cases does not exceed 150000150\,000 .

输出格式

For each test case, output one integer — the minimum number of moves that must be made for the aa array to make it have balanced remainders.

输入输出样例

  • 输入#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

    输出#1

    3
    1
    3
    0

说明/提示

The first test case is explained in the statements.

In the second test case, you need to make one move for i=2i=2 .

The third test case you need to make three moves:

  • the first move: i=9i=9 ;
  • the second move: i=9i=9 ;
  • the third move: i=2i=2 .

In the fourth test case, the values c0c_0 , c1c_1 and c2c_2 initially equal to each other, so the array aa already has balanced remainders.

首页