1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cstdio>
 #include <iostream>
 using namespace std;

 int t[1000111], n, a, b, maxi;
 int main()
 {
 	scanf("%d", &n);
 	for(int i=1; i<=n; i++)
 	{
 		scanf("%d", &a);
 		if(a>maxi)maxi=a;
 		t[a]++;
 	}
 	b=maxi;
 	for(int i=0; t[i]!=0||i<=maxi; i++)
 	{
 		b=max(b,i);
 		t[i+1]+=t[i]/2;
 	}
 	printf("%d\n", b);
 	
 	return 0;
 }