1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
//#include <queue>

using namespace std;
int n,a,maxim=0,tab[300000];
//int x,y;
//priority_queue <int , std::vector <int>, std::greater <int> > prokieniev;
int main()
{
    std::ios_base::sync_with_stdio(false);
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a;
        tab[a]++;
    }
        for(int i=0;i<300000;i++){
        if(tab[i]!=0){maxim=i;tab[i+1]+=(tab[i]/2);}
        //cout<<maxim<<"\n";
    }

    cout<<maxim<<"\n";
    return 0;
}