1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
#define maxn (int)1e6+1000
int n,tab[maxn], dokad, o, wynik;
int main()
{
	scanf("%d", &n);
	for (int i=0; i<n; i++)
	{
		int x;
		scanf("%d", &x);
		tab[x]++;
		dokad=max(dokad, x);
	}
	for (o=0; o<=dokad; o++)
	{
		tab[o+1]+=tab[o]/2;
		if (tab[o+1]>=1) wynik=o+1, dokad++;
	}
	printf("%d\n", wynik);
}