1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
#define MAXN 250000
int tab[MAXN];
//max wynik: 1e6 * 2**(2e5) < 2**20 * 2**(2e5) = 2**(2e5 + 20)
int main() {
  int n, a, res = 0;
  scanf("%d", &n);
  while(n--){
    scanf("%d", &a);
    tab[a]++;
  }
  for(int i = 0; i < MAXN; i++) {
    if(tab[i] > 0)
      res = i;
    tab[i+1] += tab[i]/2;
  }
  printf("%d\n", res);
}