Problem F: MAD与sum
[Creator : ]
Description
我们将数组中的 MAD (最大重复出现数)定义为数组中至少出现两次的最大数字。具体来说,如果没有至少出现两次的数字, MAD 值就是 0。
例如, MAD([1, 2, 1]) = 1 、 MAD([2, 2, 3, 3]) = 3 、 MAD([1, 2, 3, 4]) = 0。
给你一个大小为 n 的数组 a 。初始化变量 sum 设置为 0。
下面的过程将依次循环执行,直到 a 中的所有数字都变成 0:
- 设置\( sum = sum + \sum_{i=1}^{n} a_i \) ;
- 设b 是一个大小为 n 的数组。设 bi = MAD([a1, a2, …, ai]) 其中 1 ≤ i ≤ n , 然后设 ai = bi 其中 1 ≤ i ≤ n 。
求过程结束后 sum 的值。
Input
第一行包含一个整数 t
( 1 ≤ t ≤ 2 · 104
) - 测试用例的数量。
对于每个测试用例
- 第一行包含一个整数
n
(1 ≤ n ≤ 2 · 105
)--数组a
的大小。 - 第二行包含
n
个整数a1, a2, …, an
(1 ≤ ai ≤ n
) - 数组的元素。
保证所有测试用例中 n
的总和不超过 2 · 105
。
Output
对于每个测试用例,另起一行输出 sum
的值。
Sample Input Copy
4
1
1
3
2 2 3
4
2 1 1 2
4
4 4 4 4
Sample Output Copy
1
13
9
40
HINT
在第一个测试用例中, 初始化a = [1] 。
在第一个循环中:
- 设置 sum := sum + a1 = 0 + 1 = 1;
- 设置 b1 := MAD([a1]) = MAD([1]) = 0,然后设置 a1 := b1。
第一个循环结束后, a = [0],进程结束。进程结束后, sum 的值为 1。