# 3 <= n <= 50000
n = int(input())
init_tab = list(map(int, input().split()))
# print(init_tab)
lista_zmian = []
def zmien_od_1(gora):
zmiany = 0
tab2 = init_tab.copy()
for i in range(1, n):
if gora:
if tab2[i-1] >= tab2[i]:
if i < n - 1:
tab2[i] = max(tab2[i-1], tab2[i+1]) + 1
else:
tab2[i] = tab2[i-1] + 1
zmiany += 1
else:
if tab2[i-1] <= tab2[i]:
if i < n - 1:
tab2[i] = min(tab2[i-1], tab2[i + 1]) - 1
else:
tab2[i] = tab2[i-1] - 1
zmiany += 1
gora = not gora
#####
# print(tab2)
# print(zmiany)
lista_zmian.append(zmiany)
def zmien_od_0(gora):
zmiany = 0
tab2 = init_tab.copy()
for i in range(n - 1):
if gora:
if tab2[i] >= tab2[i + 1]:
if i > 0:
tab2[i] = min(tab2[i+1],tab2[i-1]) - 1
else:
tab2[i] = tab2[i+1] - 1
zmiany += 1
else:
if tab2[i] <= tab2[i + 1]:
if i > 0:
tab2[i] = max(tab2[i+1], tab2[i-1]) + 1
else:
tab2[i] = tab2[i+1] + 1
zmiany += 1
gora = not gora
#####
# print(tab2)
# print(zmiany)
lista_zmian.append(zmiany)
zmien_od_1(True)
zmien_od_1(False)
zmien_od_0(True)
zmien_od_0(False)
print(min(lista_zmian))
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 | # 3 <= n <= 50000 n = int(input()) init_tab = list(map(int, input().split())) # print(init_tab) lista_zmian = [] def zmien_od_1(gora): zmiany = 0 tab2 = init_tab.copy() for i in range(1, n): if gora: if tab2[i-1] >= tab2[i]: if i < n - 1: tab2[i] = max(tab2[i-1], tab2[i+1]) + 1 else: tab2[i] = tab2[i-1] + 1 zmiany += 1 else: if tab2[i-1] <= tab2[i]: if i < n - 1: tab2[i] = min(tab2[i-1], tab2[i + 1]) - 1 else: tab2[i] = tab2[i-1] - 1 zmiany += 1 gora = not gora ##### # print(tab2) # print(zmiany) lista_zmian.append(zmiany) def zmien_od_0(gora): zmiany = 0 tab2 = init_tab.copy() for i in range(n - 1): if gora: if tab2[i] >= tab2[i + 1]: if i > 0: tab2[i] = min(tab2[i+1],tab2[i-1]) - 1 else: tab2[i] = tab2[i+1] - 1 zmiany += 1 else: if tab2[i] <= tab2[i + 1]: if i > 0: tab2[i] = max(tab2[i+1], tab2[i-1]) + 1 else: tab2[i] = tab2[i+1] + 1 zmiany += 1 gora = not gora ##### # print(tab2) # print(zmiany) lista_zmian.append(zmiany) zmien_od_1(True) zmien_od_1(False) zmien_od_0(True) zmien_od_0(False) print(min(lista_zmian)) |
English