liczba_dzwiekow = int(input())
dzwieki = list(map(int, input().split()))
# dla przyszlych testow z odwrotną kolejnością mniejszych większych liczb
dzwieki2 = dzwieki.copy()
# drugi dzwiek wiekszy od pierwszego itd aż do końca
nastepne_wieksze = True
# tablica przechowująca dwie liczby, jedna liczba informuje nas
# o tym ile zmian potrzebujemy dla kolejności mniejsza większa
# a druga liczba o ilości zmian dla kolejności większa mniejsza
mozliwe_zmiany = []
# na początku mamy zero zmian
zmiany = 0
for i in range(len(dzwieki)-1):
if nastepne_wieksze:
if dzwieki[i] >= dzwieki[i+1]:
zmiany += 1
dzwieki[i+1] = 10**9
else:
if dzwieki[i] <= dzwieki[i+1]:
zmiany += 1
dzwieki[i+1] = -1*(10**9)
nastepne_wieksze = not nastepne_wieksze
# i druga możliwość drugi dźwięk mniejszy od pierwszego itd aż do końca
nastepne_wieksze = False
# ustawiamy na nowo naszą tablice z dźwiękami na taką jaka była na początku przed zmianami w powyższym kodzie
dzwieki = dzwieki2
# zapisujemy jedną z możliwych ilości zmian w nagraniu
mozliwe_zmiany.append(zmiany)
# robimy dokładnie to samo
zmiany = 0
for i in range(len(dzwieki)-1):
if nastepne_wieksze:
if dzwieki[i] >= dzwieki[i+1]:
zmiany += 1
dzwieki[i+1] = 10**9
else:
if dzwieki[i] <= dzwieki[i+1]:
zmiany += 1
dzwieki[i+1] = -1*(10**9)
nastepne_wieksze = not nastepne_wieksze
# zapisujemy drugą z możliwych ilości zmian w nagraniu
mozliwe_zmiany.append(zmiany)
# i pokazujemy tą najniższą wartość
print(min(mozliwe_zmiany))
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 | liczba_dzwiekow = int(input()) dzwieki = list(map(int, input().split())) # dla przyszlych testow z odwrotną kolejnością mniejszych większych liczb dzwieki2 = dzwieki.copy() # drugi dzwiek wiekszy od pierwszego itd aż do końca nastepne_wieksze = True # tablica przechowująca dwie liczby, jedna liczba informuje nas # o tym ile zmian potrzebujemy dla kolejności mniejsza większa # a druga liczba o ilości zmian dla kolejności większa mniejsza mozliwe_zmiany = [] # na początku mamy zero zmian zmiany = 0 for i in range(len(dzwieki)-1): if nastepne_wieksze: if dzwieki[i] >= dzwieki[i+1]: zmiany += 1 dzwieki[i+1] = 10**9 else: if dzwieki[i] <= dzwieki[i+1]: zmiany += 1 dzwieki[i+1] = -1*(10**9) nastepne_wieksze = not nastepne_wieksze # i druga możliwość drugi dźwięk mniejszy od pierwszego itd aż do końca nastepne_wieksze = False # ustawiamy na nowo naszą tablice z dźwiękami na taką jaka była na początku przed zmianami w powyższym kodzie dzwieki = dzwieki2 # zapisujemy jedną z możliwych ilości zmian w nagraniu mozliwe_zmiany.append(zmiany) # robimy dokładnie to samo zmiany = 0 for i in range(len(dzwieki)-1): if nastepne_wieksze: if dzwieki[i] >= dzwieki[i+1]: zmiany += 1 dzwieki[i+1] = 10**9 else: if dzwieki[i] <= dzwieki[i+1]: zmiany += 1 dzwieki[i+1] = -1*(10**9) nastepne_wieksze = not nastepne_wieksze # zapisujemy drugą z możliwych ilości zmian w nagraniu mozliwe_zmiany.append(zmiany) # i pokazujemy tą najniższą wartość print(min(mozliwe_zmiany)) |
English