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

using namespace std;

int main()
{
    int n;
    scanf("%d", &n);
    bool monety[1000001];
    for(int i = 0; i < 1000001; i++)
        monety[i] = false;
    int wartosc;
    int k = 0;
    for(int i = 1; i <= n; i++)
    {
        k = 0;
        scanf("%d", &wartosc);
        if(monety[wartosc] == false)
            monety[wartosc] = true;
        else 
        {
            while(monety[wartosc+k] == true)
            {
                monety[wartosc + k] = false;
                k++;
            }
            monety[wartosc+k] = true;
        }
//        for(int i = 1; i <= 5; i++)
//            cout << monety[i];
//        cout << endl;
    }
    int max = -1;
    for(int i = 1; i < 1000001; i++)
        if(monety[i] == true)
            if(i > max)
                max = i;
            
    printf("%d\n", max);
    
//    for(int i = 1; i <= 5; i++)
//        cout << monety[i];
    return 0;
}