強連結な向き付け

橋のない無向グラフGGとその辺のリストesesが与えられたときに、GGを強連結有向グラフとなるようなesesの向きを返す。

var d = strong_orientation(g:Graph, es:Edges[T, U]):seq[int]

GGの各辺の重みは対応するesesのインデックス(0-based)の値を入れておく。 ii番目の戻り値はd[i]d[i]が1ならばes[i]es[i]と同じ向き、1-1ならばes[i]es[i]と逆向きを表す。

本アルゴリズムを利用する問題としてはARC111Dを参照。

制約

計算量