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
n = int(input())
bursztyny = list(map(int, input().split()))

def czy_pasuje(k):
    aktywne_fale = 0
    koniec = [0] * (n + 1)

    for i in range(n):
        aktywne_fale -= koniec[i]

        if bursztyny[i] < aktywne_fale:
            return False

        nowe_fale = bursztyny[i] - aktywne_fale
        aktywne_fale += nowe_fale

        if i + k < n:
            koniec[i + k] += nowe_fale

    return True


lewo = 1
prawo = n
odpowiedz = 1

while lewo <= prawo:
    srodek = (lewo + prawo) // 2

    if czy_pasuje(srodek):
        odpowiedz = srodek
        lewo = srodek + 1
    else:
        prawo = srodek - 1

print(odpowiedz)