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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <cstdio>
#include <vector>

using namespace std;

int main ()

{ 
  ios_base::sync_with_stdio(0);

  int i, n, liczba, maks, przen, maksl;
  vector < int > liczby;

  maks=0;
  maksl=201718;
  liczby.clear();
  for (i=1; i<=201719; i++)
    liczby.push_back(0);
 
  cin >> n;
  
  for (i=1; i<=n; i++)
   {
	cin >> liczba;
	liczby[liczba]=liczby[liczba]+1;
	if (liczba>maks)
	  maks=liczba;
   }

//   cout << maks;
//   cout << endl;
//   cout << endl;
//   for (i=0; i<=maks; i++)
//   {
//	 cout << liczby[i];
//     cout << endl;
//   } 
//   cout << endl;
   
   przen=0;
   
  for (i=0; i<=maks; i++)
   {
    przen=przen/2+liczby[i];
//	cout << przen;
//	cout << endl;
   }

//   cout << endl;
//   cout << przen;
//   cout << endl;
//   cout << endl;
   
   while (przen>=2)
   {
   przen=przen/2;
   maks=maks+1;
   }   
   
//   if (maks>=maksl)
//   {
//     cout << maksl;
//   }
//   else
//   {
     cout << maks;
//   }
	
  return 0;
}