问题描述
对于正整数x,令mathrmctz(x)表示x的二进制表示中末尾零的个数。
例如,我们有mathrmctz(8)=3,因为8的二进制表示为1000
,而mathrmctz(5)=0,因为5的二进制表示为101
。
给定一个非负整数序列T=(T1,T2,dots,TN)。
考虑选择一个正整数序列A=(A1,A2,dots,AN),使得它满足以下条件:
- 对于所有的整数i,1leqileqN,都有A1ltA2ltcdotsltAN−1ltAN,即A是严格递增的。
- 对于所有满足1leqileqN的整数i,都有mathrmctz(Ai)=Ti。
在这里,AN的最小可能值是多少?
约束条件
- 1leqNleq105
- 0leqTileq40
- 输入中的所有值都是整数。
输入
输入以标准格式给出,格式如下:
N
T1 T2 dots TN
输出
输出答案。
示例输入1
4
0 1 3 2
示例输出1
12
例如,A1=3,A2=6,A3=8,A4=12满足条件。
A4不能小于或等于11,所以答案是12。
示例输入2
5
4 3 2 1 0
示例输出2
31
示例输入3
1
40
示例输出3
1099511627776
注意,答案可能不适合32位整数。
示例输入4
8
2 0 2 2 0 4 2 4
示例输出4
80