问题描述
对于由非负整数组成的多集 T ,我们可以这样定义:
-
sum(T) 是 T 中所有元素的和。例如,如果是 T={0,1,1,3} ,那么就是 sum(T)=0+1+1+3=5 。
-
mex(T) 是不在 T 中的最小非负整数。例如,如果 T={0,1,1,3} ,那么 mex(T)=2 ,因为 2 是 T 中没有的最小的非负整数。
给你一个大小为 n 的由非负整数组成的多集合 S 。起初,您的分数是 0 。您可以按任意顺序执行以下操作任意次数(可能为零):
- 选择一个子集 S′⊆S (即 S′ 包含当前 S 中的部分元素),将 sum(S′) 添加到您的分数中,然后从 S 中删除 S′ 。
- 选择子集 S′⊆S ,在得分中添加 mex(S′) ,然后从 S 中删除 S′ 。
求可能得到的最高分。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t ( 1≤t≤103 )。( 1≤t≤103 ).测试用例说明如下。
每个测试用例的第一行包含一个整数 n ( 1≤n≤50 )。
每个测试用例的第二行包含 n 个整数 S1,S2,…,Sn ( 0≤Si≤50 )。
输出格式
为每个测试用例打印一个整数,即可能获得的最高分。
样例输入
2
3
0 1 1
3
1 2 3
样例输出
3
6
说明
注
在第一个测试案例中,可能的最优策略如下:
- 选择 S′={0,1} ,将 mex(S′)=mex({0,1})=2 添加到您的分数中,然后从 S 中删除 S′ 。目前,您的得分是 2 和 S={1} 。
- 选择 S′={1} ,在您的得分中添加 sum(S′)=sum({1})=1 ,然后从 S 中删除 S′ 。目前,您的得分是 3 和 S=∅ 。
在此之后,您无法再进行任何运算。可以证明 3 是可能得到的最大得数。