A trading firm predicts the stock prices of a commodity for the next n
days. A period of consecutive days is considered investable if the maximum price in the period is max_price
, and the minimum price in the period is min_price
. Find the number of investable periods in the next n
days.
More formally, given an array price
of length n
, find the number of subarrays in which the maximum element is max_price
and the minimum element is min_price
.
Note: A subarray is a sequence of consecutive elements of the array.
Function Description
Complete the function countInvestablePeriods
in the editor below.
countInvestablePeriods
has the following parameters:
int price[n]
: the predicted prices for the nextn
daysint max_price
: the maximum price of an investable periodint min_price
: the minimum price of an investable period
Returns
long integer
: the number of investable periods
Example 1:
Input: price = [4, 5, 3, 3, 1], max_price = 5, min_price = 3
Output: 4
Explanation:Here, the periods [4, 5, 3], [4, 5, 3, 3], [5, 3], and [5, 3, 3] are investable.
Example 2:
Input: price = [2, 2, 1, 5, 1], max_price = 2, min_price = 1
Output: 2
Explanation:The periods [2, 2, 1] and [2, 1] are investable.
1 ≤ n ≤ 105
1 ≤ price[i] ≤ 109
1 ≤ min_price ≤ max_price ≤ 109

input:
output: