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
def maxzach(perly):
    n = len(perly)
    if n == 0:
        return 0

    podwojone = perly +perly
    dlugosc = 2 *n
    
    poprzedni = [-1] *dlugosc
    stos = []
    
    for i in range(dlugosc):
        while stos and podwojone[stos[-1]] < podwojone[i]:
            stos.pop()

        if stos:
            poprzedni[i] = stos[-1]
        
        stos.append(i)
    
    roznice = [0] *(n + 1)
    
    for j in range(dlugosc):
        lewy = max(poprzedni[j] + 1, j - n + 1)
        prawy = min(j, n - 1)
        
        if lewy <= prawy:
            roznice[lewy] += 1
            roznice[prawy + 1] -= 1
    
    zachds = [0] * n
    suma = 0
    for i in range(n):
        suma += roznice[i]
        zachds[i] = suma
    
    return max(zachds)


n = int(input())
print(maxzach(list(map(int, input().split()))))