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
import itertools
import numpy as np


def sprawdz_poprawnosc(a):
    roznice = []
    for i in range(1, n):
        roznice.append(a[i] - a[i - 1])

    # print(roznice)

    for j in range(1, n - 1):
        if np.sign(roznice[j]) * np.sign(roznice[j - 1]) >= 0:
            return False

    return True


def zmien_k_liczb(dzwieki, k):
    a_zmienione_lokalnie = dzwieki
    range_1 = list(range(1, len(dzwieki)+1))
    range_2 = range_1.copy()

    for value in range_1:
        range_2.append(-value)

    # print(range_2)

    kombinacje = list(itertools.combinations(range_2, k))
    # print(kombinacje)
    for kombinacja in kombinacje:
        a_zmienione_lokalnie = dzwieki.copy()
        for zmiana in kombinacja:
            a_zmienione_lokalnie[abs(zmiana)-1] = np.sign(zmiana)*10**7

        # print(a_zmienione_lokalnie)
        if sprawdz_poprawnosc(a_zmienione_lokalnie):
            return a_zmienione_lokalnie

    return a_zmienione_lokalnie


n = int(input())
a = list(map(int, input().strip().split()))[:n]

if sprawdz_poprawnosc(a):
    print(0)
    exit()

zgadywana = 1

while True:
    a_zmienione = zmien_k_liczb(a, zgadywana)

    if sprawdz_poprawnosc(a_zmienione):
        print(zgadywana)
        exit()
    else:
        zgadywana += 1