A. 提交就是一切
- 每个测试的时间限制:1 秒
- 内存限制:256 MB
对于一个由非负整数构成的多重集 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,将 sum(S′) 加到你的得分上,然后从 S 中删除 S′。
• 选择当前 S 的一个子集 S′⊆S,将 mex(S′) 加到你的得分上,然后从 S 中删除 S′。
求能获得的最大可能得分。
输入格式
每个测试点包含多个测试用例。第一行包含测试用例数 t(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 是能获得的最大得分。