예제 #1
0
    // Complete the maxCircle function below.
    static int[] maxCircle(int[][] queries)
    {
        var ds     = new DisjointSets();
        var result = new int[queries.Length];

        var max = 0;

        for (int index = 0; index < queries.Length; index++)
        {
            var left  = ds.FindOrAdd(queries[index][0]);
            var right = ds.FindOrAdd(queries[index][1]);

            max           = Math.Max(max, ds.Union(left, right));
            result[index] = max;
        }

        return(result);
    }