public static void Main(string[] args) { int N = StdIn.ReadInt(); QuickUnionPathCompressionUF uf = new QuickUnionPathCompressionUF(N); // read in a sequence of pairs of integers (each in the range 0 to N-1), // calling find() for each pair: If the members of the pair are not already // call union() and print the pair. while (!StdIn.IsEmpty()) { int p = StdIn.ReadInt(); int q = StdIn.ReadInt(); if (uf.Connected(p, q)) { continue; } uf.Union(p, q); Console.WriteLine(p + " " + q); } Console.WriteLine(uf.Count + " components"); }
public static void Main(string[] args) { int N = StdIn.ReadInt(); QuickUnionPathCompressionUF uf = new QuickUnionPathCompressionUF(N); // read in a sequence of pairs of integers (each in the range 0 to N-1), // calling find() for each pair: If the members of the pair are not already // call union() and print the pair. while (!StdIn.IsEmpty()) { int p = StdIn.ReadInt(); int q = StdIn.ReadInt(); if (uf.Connected(p, q)) continue; uf.Union(p, q); Console.WriteLine(p + " " + q); } Console.WriteLine(uf.Count + " components"); }