#286. 合成大炮弹(2)

合成大炮弹(2)

题目描述

游乐场的充气城堡里有一门充气大炮,你可以操控这门大炮向前方的水池里发射一些小炮弹,每个炮弹的体积都是一个正整数。这种炮弹有一个神奇的特性:在任何时候,相同体积的炮弹不能在水池中共存。一旦水池中存在两个相同体积的炮弹,它们就会立刻相互吸引,合成为一个更大的炮弹,合成后炮弹的体积等同于原来这两个小炮弹的体积之和。

例如:你已经向水池里发射了体积分别为3、4、6的三个炮弹,接下来你又发射了一个体积为4的炮弹。那么这个炮弹会与水池中原本存在的体积为4的炮弹互相吸引,合成为一个体积为8的炮弹,这样水池中就会剩下体积分别为3、6、8的三个炮弹。

了解规则之后,你进入了充气城堡大玩特玩。你总共向水池中发射了 nn 枚炮弹,由于技术精湛,炮弹全部命中。求全部发射完毕后,水池中最大的炮弹的体积。

输入格式

第一行:一个整数 nn,表示总共发射的炮弹数量;

第二行:nn 个整数 ViV_i,分别表示发射的每个炮弹的体积。

输出格式

一个整数,表示全部发射完毕后水池中最大的炮弹的体积。

样例

7
10 6 6 6 5 3 5
20
4
2 2 2 2
8

数据规模

各测试点数据规模如下:

测试点 nn ViV_i
121-2 1n101≤n≤10 1Vi101≤V_i≤10
343-4 1n1031≤n≤10^3 1Vi1051≤V_i≤10^5
5105-10 1n1051≤n≤10^5