You are given two strings `firstString` and `secondString` that are **0-indexed** and consist only of lowercase English letters. Count the number of index quadruples `(i,j,a,b)` that satisfy the following conditions:

*   `0 <= i <= j < firstString.length`
*   `0 <= a <= b < secondString.length`
*   The substring of `firstString` that starts at the `ith` character and ends at the `jth` character (inclusive) is **equal** to the substring of `secondString` that starts at the `ath` character and ends at the `bth` character (inclusive).
*   `j - a` is the **minimum** possible value among all quadruples that satisfy the previous conditions.

Return _the **number** of such quadruples_.

**Example 1:**

**Input:** firstString =  "abcd ", secondString =  "bccda "
**Output:** 1
**Explanation:** The quadruple (0,0,4,4) is the only one that satisfies all the conditions and minimizes j - a.

**Example 2:**

**Input:** firstString =  "ab ", secondString =  "cd "
**Output:** 0
**Explanation:** There are no quadruples satisfying all the conditions.

**Constraints:**

*   `1 <= firstString.length, secondString.length <= 2 * 105`
*   Both strings consist only of lowercase English letters.


import heapq


def minimum_deviation(nums):
    pq = []
    min_val = float("inf")

    for num in nums:
        if num % 2 == 0:
            heapq.heappush(pq, -num)
        else:
            heapq.heappush(pq, -(num * 2))
        min_val = min(min_val, num)

    result = float("inf")
    while True:
        top = -heapq.heappop(pq)
        result = min(result, top - min_val)

        if top % 2 == 1:
            break
        heapq.heappush(pq, -(top // 2))
        min_val = min(min_val, top // 2)

    return result
