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
33
34
#include <iostream>
#include <vector>

using namespace std;
#define N 201719

int main(){
    ios::sync_with_stdio(false);
    int n;
    cin>>n;

    vector<int> counter(N);
    int a, maxp=0;
    for(int i=0; i<n; ++i){
        cin>>a;
        ++counter[a];
        if(a>maxp)
            maxp=a;
    }
    for(int i=0; i<maxp; ++i){
        if(counter[i]>1){
            counter[i+1]+=counter[i]/2;
        }
    }

    int k=counter[maxp];
    while(k>1){
        k/=2;
        ++maxp;
    }

    cout<<maxp<<endl;
    return 0;
}