Tester解 みどりむし:セグ木を使った解法
解説
考えやすくするためクエリ2の区間を半開区間[L,R)としておきます。
∑j=Liの部分をSiとします。
Siはそれぞれ以下のようになります。
SLSL+1⋮SR−1=AL=AL+AL+1=AL+AL+1+⋯+AR−1
よって、
i=L∑RSi=i=L∑R(R−i)×Ai=Ri=L∑RAi−i=L∑RiAi
となります。それそれの総和はFenwick Treeで管理すれば総和の取得、要素の更新が高速に行えます。
実装