//(x_i=f)V(x_j=g) <-> !(x_i=f)->(x_j=g) <-> !(x_j=g)->(x_i=f)の追加 public void AddClosure(int i, bool f, int j, bool g) { scc.AddEdge((i << 1) | (f ? 0 : 1), (j << 1) | (g ? 1 : 0)); scc.AddEdge((j << 1) | (g ? 0 : 1), (i << 1) | (f ? 1 : 0)); }