各 Aj に対し、式 l=Li∑Rir=l∑Rij=l∑rAj で Aj が足される回数を考えます。
j<Li または Ri<j のときは Aj は足されないので、Li≤j≤Ri なる j についてのみ考えます。
Aj は l≤j≤r のとき 1 度ずつ足されるので、Aj が足される回数の合計は Li≤l≤j≤r≤Ri を満たす整数組 (l,r) の数に等しいです。
Li≤l≤j なる整数 l は j−Li+1 個、j≤r≤Ri なる整数 r は Ri−j+1 個であることから、上の条件を満たす整数組 (l,r) の個数は (j−Li+1)(Ri−j+1) です。
したがって、求める式の値は j=Li∑Ri(j−Li+1)(Ri−j+1)Aj であり、展開すると j=Li∑Ri−j2Aj+(Li+Ri)jAj+(−Li+1)(Ri+1)Aj となります。
これにより、クエリが 1 つの場合は上式を用いて O(N) 時間で計算できます。
Q 個のクエリに対応するためには、j2Aj,jAj,Aj の累積和を持っておき、区間和を取ったのちに係数を掛け合わせて和を取ればよいです。