from typing import List


def maxCrossingSum(arr: List[int], start: int, mid: int, stop: int):
    """Helper Function - Find the max crossing sum w.r.t. middle index"""
    leftSum = arr[mid]  # start point
    leftMaxSum = arr[mid]  # Keep track of maximum sum
    # Traverse in reverse direction from (mid-1) to start
    for i in range(mid - 1, start - 1, -1):
        leftSum = leftSum + arr[i]
        if leftSum > leftMaxSum:
            leftMaxSum = leftSum

    rightSum = arr[mid + 1]  # start point
    rightMaxSum = arr[mid + 1]  # keep track of maximum sum
    # Traverse in forward direction from (mid+2) to stop
    for j in range(mid + 2, stop + 1):
        rightSum = rightSum + arr[j]
        if rightSum > rightMaxSum:
            rightMaxSum = rightSum

    return rightMaxSum + leftMaxSum