解説

i<ji < jかつAi>AjA_i > A_jとなる1つのペアの解への寄与を考えます。

このペアが含まれる区間の個数はi×(Nj+1)i \times (N-j+1)個です。

jjを固定して考えた際、Ai>AjA_i > A_jとなるiiについて、i×(Nj+1)\sum i \times (N-j+1)が答えに加わることになります。

Fenwick treeで条件を満たすAiA_iiiを加算すればAjA_jが決まれば高速に総和を求めることができます。

実装

Rust

C++