#1007. 一条线上的史莱姆

一条线上的史莱姆

题目描述

在一条直线上有 nn 个史莱姆,第 ii 个史莱姆初始位于坐标 aia_i 处。

你可以执行以下操作任意次(包括 00 次):

  • 选择一个整数 xx,然后对每个 jj1jn1 \le j \le n)执行以下更新:
    • 如果 aj<xa_j < x,则令 aj:=aj+1a_j := a_j + 1
    • 如果 aj>xa_j > x,则令 aj:=aj1a_j := a_j - 1
    • 如果 aj=xa_j = x,则不做任何操作。

请计算使所有史莱姆聚集到同一个位置所需的最少操作次数。

输入格式

第一行包含一个整数 tt1t1001 \le t \le 100)—— 测试用例的数量。

对于每个测试用例:

  • 第一行包含一个整数 nn2n10002 \le n \le 1000)—— 史莱姆的数量。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai10001 \le a_i \le 1000)—— 史莱姆的初始位置。

输出格式

对于每个测试用例,输出一行一个整数,表示使所有史莱姆占据同一位置所需的最少操作次数。

样例输入 1

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

样例输出 1

2
0
3
2
4
4
4
5
5
500

说明

样例解释

  • 在第 11 个测试用例中,我们可以执行 22 次操作,每次都选择 x=3x=3。 第一次操作后,史莱姆的位置数组变为 a=[2,3,3,3,4]a = [2, 3, 3, 3, 4]; 第二次操作后,位置数组更新为 a=[3,3,3,3,3]a = [3, 3, 3, 3, 3]。大家都到达了同一个位置。
  • 在第 22 个测试用例中,所有史莱姆初始时就已经都在位置 33 上了,因此需要 00 次操作。

数据范围

  • 对于所有测试点,保证 1t1001 \le t \le 100
  • 对于每个测试用例,保证 2n10002 \le n \le 10001ai10001 \le a_i \le 1000
  • 保证同一测试点内所有测试用例的 nn 之和不超过 10001000
  • 保证所有的输入数值均为整数。