Vi={ai,bi,i}とします.このVを第1要素,
つまりaiの大きさ順で昇順ソートしたものをV′とします.
i=1,2,⋯,Nの順に見ていき,
1以上i−1以下の数jが,Vj,2′<Vi,2′を満たすとします.
このときVi,3′とjの間には辺が張られています.
これはV′が第1要素でソートされていることからわかります.
同様にi=N,N−1,⋯,1の順に見ていき,
i+1以上N以下の数jが,
Vi,2′<Vj,2′を満たすとします.
このときVi,3′とjの間には辺が張られています.
これらの計算は(数列の転倒数を求める要領で)セグメント木やFenwick Treeを用いてO(NlogN)で計算可能です.