90048 - 数学实验

老师在黑板上写出了一个正整数数列,让所有同学都来做一个数学实验,要求如下:

1.这组数总共不超过500000个,每个数的大小范围在1~80之间;

2.要从这组数中找出两个相邻且相同的数,删掉其中一个数,剩下的一个数加1(例如: 两个相邻的6,变成一个7) ;

3.重复执行第2步;

4.当操作无法继续进行时,实验结束,此时,实验结果就是这组数里面最大的数

 

注意:不同的实验方案得到的最大数不同

 

现在给定了一个正整数数列,请你编写程序计算出能够得到的实验结果最大是多少?

例如:

当N=6,这个正整数数列是 1、2、2、2、3、4时,得到最大数的方法如下:

先将后面两个2变成一个3,然后3和3变成4,最后4和4变成5。可以证明,没有其它更好的方案,故输出5。

输入

第一行输入一个正整数N(1 \le N \le 500000)第二行输入N个正整数 (1 \le 正整数 \le 80),相邻两个数之间用一个空格隔开

输出

输出一个正整数,表示实验结束后能够得到的最大的实验结果

样例

输入

6
1 2 2 2 3 4

输出

5

来源

蓝桥杯2023国赛
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题