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
#include<bits/stdc++.h>
using namespace std;

vector<int>V; int maks=0, ch=0, a, n, i=0;

int main(){
	scanf("%d", &n);
	for(int c=0;c<n;c++){
		scanf("%d", &a);
		V.push_back(a);
	}
	sort(V.begin(), V.end());
	a=0;
	ch=V[0];
	while(i<n){
		if(ch==V[i]){a++; i++;}
		else{
			if(a==0){ch=V[i];a=1;i++;}
			else{
				if(a%2==1){
					maks=max(ch, maks);
				}
				a/=2;
				if(a>0)ch++;
			}
		} 	
		//printf("%d %d\n", ch, a);
	}
	//printf("%d %d\n", ch, a);
	while(a>0){a/=2; if(a>0)ch++; /*printf("%d ", ch);*/}
	maks=max(ch, maks);
	printf("%d\n",maks);
}