Advertisement
sidorenkov

Untitled

Nov 27th, 2020
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.90 KB | None | 0 0
  1. def find_local_max_min(n, arr):  
  2.  
  3.     local_max = []  
  4.     local_min = []  
  5.  
  6.  
  7.     if(arr[0] < arr[1]):  
  8.         local_min.append(0)  
  9.  
  10.     for i in range(1, n-1):  
  11.  
  12.         if (arr[i-1] > arr[i] < arr[i + 1]):  
  13.             local_min.append(i)  
  14.         elif (arr[i-1] < arr[i] > arr[i + 1]):  
  15.             local_max.append(i)  
  16.  
  17.     if (arr[-1] > arr[-2]):  
  18.         local_max.append(n-1)  
  19.     elif (arr[-1] < arr[-2]):  
  20.         local_min.append(n-1)  
  21.  
  22.     return local_min, local_max
  23.  
  24.  
  25. def solution(n, array):
  26.     local_min, local_max = find_local_max_min(n, array)
  27.     # print('local_min: ', local_min)
  28.     # print('local_max: ', local_max)
  29.     profit = 0
  30.     for i in range(min(len(local_min), len(local_max))):
  31.         profit += array[local_max[i]] - array[local_min[i]]
  32.     return profit
  33.  
  34. n = int(input())
  35. array = [int(x) for x in input().split()]
  36.  
  37. print(solution(n, array))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement