Problem F: MAD与sum

Problem F: MAD与sum

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

我们将数组中的 MAD (最大重复出现数)定义为数组中至少出现两次的最大数字。具体来说,如果没有至少出现两次的数字, MAD 值就是 0

例如, MAD([1, 2, 1]) = 1MAD([2, 2, 3, 3]) = 3MAD([1, 2, 3, 4]) = 0

给你一个大小为 n 的数组 a 。初始化变量 sum 设置为 0

下面的过程将依次循环执行,直到 a 中的所有数字都变成 0

  1. 设置\( sum = sum + \sum_{i=1}^{n} a_i \) ;
  2. 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]

在第一个循环中:

  1. 设置 sum := sum + a1 = 0 + 1 = 1
  2. 设置 b1 := MAD([a1]) = MAD([1]) = 0,然后设置 a1 := b1

第一个循环结束后, a = [0],进程结束。进程结束后, sum 的值为 1