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
31
32
#include <iostream>
using namespace std;

int tab[1000900];

int main()
{
  ios_base::sync_with_stdio(0);
  
  int n;
  cin >> n;

  int maxi = 0;

  for ( int i = 0; i < n; i++ )
  {
    int tmp;
    cin >> tmp;
    tab[tmp]++;
    maxi = max( maxi, tmp );
  }

  int i;

  for ( i = 0; i <= maxi || tab[i] > 0; i++ )
  {
    tab[i] /= 2;
    tab[i + 1] += tab[i];
  }

  cout << i - 1 << endl;
}