思路:以右端点从左到右扫描线。
设w(l,r)=mini=lraiw(l, r)=\min \limits_{i=l}^r a_iw(l,r)=i=lminrai,维护一个数组bbb,对于目前右端点rrr,bi=w(i,r)b_i=w(i, r)bi=w(i,r)
对于rrr找到前面最近的满足ap≤ara_p\leq a_rap≤ar的点ppp,将b[p+1...r]b[p + 1...r]b[p+1...r]改为ara_rar,然后维护一个序列ccc使得所有的cxc_xcx都加上bxb_xbx。
对于每个左端点lll计算c[l...r]c[l...r]c[l...r]的和。