n = int(input()) a = list(map(int, input().split())) def solve(l): dp = [0] dpI = [1] for i in range(n - 1): dpI.append(min(dp[i], dpI[i]) + 1) poss = [dpI[i]] if pow(-1, i % 2) * (l[i] - l[i + 1]) > 0: poss.append(dp[i]) dp.append(min(poss)) return min(dp[-1], dpI[-1]) print(min(solve(a), solve([-v for v in a])))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | n = int(input()) a = list(map(int, input().split())) def solve(l): dp = [0] dpI = [1] for i in range(n - 1): dpI.append(min(dp[i], dpI[i]) + 1) poss = [dpI[i]] if pow(-1, i % 2) * (l[i] - l[i + 1]) > 0: poss.append(dp[i]) dp.append(min(poss)) return min(dp[-1], dpI[-1]) print(min(solve(a), solve([-v for v in a]))) |