1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <vector>

const int MAX_NUMBER = 201718 + 30;

int main() {
  std::ios_base::sync_with_stdio(false);

  int n;
  std::cin >> n;

  std::vector<int> counter(MAX_NUMBER, 0);

  int number;
  for (int i = 0; i < n; ++i) {
    std::cin >> number;
    counter[number]++;
  }

  int result = 0;
  for (int i = 0; i < counter.size(); ++i) {
    if (counter[i] != 0) {
      result = i;
    }
    counter[i + 1] += counter[i] / 2;
    counter[i] = 0;
  }

  std::cout << result << std::endl;
}