#CF2147D. 阵列游戏

阵列游戏

D. 阵列游戏
每次测试时间限制:22
每次测试内存限制:256256 兆字节


你会被赋予一个由 nn 个正整数组成的数组 aa。爱丽丝和鲍勃将用这个数组玩游戏。他们轮流行动,爱丽丝先上场。

每回合,玩家必须选择一个值 x>0x > 0,且 xx 在当前数组中至少出现一次。然后:

  • 玩家获得 每个值为 xx 的点数 11 分。
  • 数组中的 每个值为 xx 的元素会被减小 11,变为 x1x-1

注意:玩家只能选择当前存在于数组中的 xx,因此每一步有效的走法都会获得正数分。
例如,如果数组是 [3,8,5,8][3,8,5,8],爱丽丝选择 x=8x=8,数组将变为 [3,7,5,7][3,7,5,7],爱丽丝将获得 22 分。

游戏结束时没有 xx 可以选择;即当数组中的所有元素均为 00 时。

给定双方都希望最大化自己的得分并以最佳方式进行游戏,计算他们各自最终获得的分数。


输入
每个测试包含多个测试用例。第一行包含测试用例的数量 tt1t1031 \le t \le 10^3)。
接下来是每个测试用例的描述:

  • 每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)——数组的大小。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)——数组的元素。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出两个整数,即 爱丽丝鲍勃 在两人都最优时获得的分数。


示例
输入:

3
3
2 1 1
5
3 3 3 5 5
4
9 9 9 9

输出:

3 1
10 9
20 16

注释

  • 在第一个测试用例中,爱丽丝先选择 x=1x=1。数组变为 [2,0,0][2,0,0],她获得 22 分。
    之后鲍勃被迫选择 x=2x=2,数组变为 [1,0,0][1,0,0],鲍勃获得 11 分。
    最后爱丽丝被迫选择 x=1x=1,再得 11 分。最终数组为 [0,0,0][0,0,0],游戏结束。
    总计:爱丽丝 33 分,鲍勃 11 分。

  • 在第三个测试用例中,每位玩家每一步都会减少所有元素并获得 44 分。
    爱丽丝会获得 54=205 \cdot 4 = 20 分,鲍勃获得 44=164 \cdot 4 = 16 分。