n = int(input())
korale = list(map(int, input().split()))
korale = korale + korale
N = 2 * n
dp = [0] * N
stos = []
for i in range(N - 1, -1, -1):
while stos and korale[stos[-1]] <= korale[i]:
stos.pop()
if not stos:
dp[i] = 1
else:
dp[i] = 1 + dp[stos[-1]]
stos.append(i)
wynik = 0
for i in range(n):
wynik = max(wynik, dp[i])
print(wynik)
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 | n = int(input()) korale = list(map(int, input().split())) korale = korale + korale N = 2 * n dp = [0] * N stos = [] for i in range(N - 1, -1, -1): while stos and korale[stos[-1]] <= korale[i]: stos.pop() if not stos: dp[i] = 1 else: dp[i] = 1 + dp[stos[-1]] stos.append(i) wynik = 0 for i in range(n): wynik = max(wynik, dp[i]) print(wynik) |
English