Problem6058--1024

6058: 1024

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小Z是一名忠实的游戏爱好者,最近他迷上了一款叫作《1024》的休闲小游戏。这个游戏规则很简单,游戏开始时屏幕上会出现一排正整数,这些数字有可能是 $1,\ 2,\ 4,\ 8,\ 16,\ ...$,保证一定是二的整数次幂,游戏的方式也很简单,每次操作只需要选择相邻的两个相同数字,它们就会自动地消失,并在这个位置上生成一个两数之和,比如可以把两个连续的 $1$ 合成一个 $2$,两个连续的 $2$ 合成一个 $4$,被合成的数可以继续用于进一步的合成。
小Z想知道,在已知开始数列的情况下,自己最高能合成出一个多大的数字。

Input

第一行包含一个整数 $N\ (3*10^5)$,表示屏幕上初始有 $N$ 个正整数。
第 $2 \sim N+1$ 行,每行一个非负整数,第 $i+1$ 行的整数 $A_i$ 表示屏幕初始第 $i$ 个正整数为 $2^{A_i}\ (A_i \leq 40)$。

Output

一个正整数 $k$,表示最终屏幕上能得到的最大数字为 $2^k$。

Sample 1 Input

4
1
1
1
2

Sample 1 Output

3
初始四个数分别为 $2,\ 2,\ 2,\ 4$。
合成过程:$2224-->244-->28$。

Source/Category