本题解只是该题大致的 hint
考虑用括号序列匹配来描述这个过程。
对每个点,维护 \(c_i\) 表示此时栈的高度。
答案要分成 \(A,B\) 加起来
A 部分
发现 \(i\) 位置多一个贡献的是:
\(\max(0,\min_{j\in [l,i-1]}c_j - c_i)\)
容易用前缀最大值线段树的技巧维护。
B 部分
考虑对于加入了 \([0,x]\) 位置的球,[0,l-1] 中有哪些位置没有被球占到?
第 \(i+1\) 个位置没被占的条件是:
\(c_i < \min_{j\in [i,x]}c_j\)
依然可以由前缀最大值线段树的技巧维护。