1# Runtime: 1271 ms (Top 38.4%) | Memory: 29.79 MB (Top 48.0%)234class Solution:5def waysToSplit(self, nums: List[int]) -> int:6prefix = [0]7for x in nums:8prefix.append(prefix[-1] + x)910ans = 011for i in range(1, len(nums)):12j = bisect_left(prefix, 2 * prefix[i])13k = bisect_right(prefix, (prefix[i] + prefix[-1]) // 2)14ans += max(0, min(len(nums), k) - max(i + 1, j))15return ans % 1_000_000_007