1
# Runtime: 1271 ms (Top 38.4%) | Memory: 29.79 MB (Top 48.0%)
2

3

4
class Solution:
5
def waysToSplit(self, nums: List[int]) -> int:
6
prefix = [0]
7
for x in nums:
8
prefix.append(prefix[-1] + x)
9

10
ans = 0
11
for i in range(1, len(nums)):
12
j = bisect_left(prefix, 2 * prefix[i])
13
k = bisect_right(prefix, (prefix[i] + prefix[-1]) // 2)
14
ans += max(0, min(len(nums), k) - max(i + 1, j))
15
return ans % 1_000_000_007

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0