# 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)) |