I have array $t$ with size $n \leq 10^6$. It has only two kinds of elements inside: $1$ or $-1$. I need to count how many contiguous subsequences have positive sum.
This pseudocode demonstrates exactly the behavior I want, but is too slow for large $n$:
c = 0
for i = 1 to n do
for i = j to n do
if sum(u[i:j]) > 0 then
c = c + 1
return c
Partial sums can be used to optimize it, but it will still be $O(n^2)$.
Here are some examples if they help:
[-1, 1, -1, -1, -1]
$\rightarrow$ 1
[1, -1, 1, 1, -1, 1]
$\rightarrow$ 14
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
$\rightarrow$ 55
Does there exist linear or $n \log n$ solution?