Submission #420782


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace b
{
    class Program
    {
        static int[] par, rank;

        static void Main(string[] args)
        {
            string[] nq = Console.ReadLine().Split(' ');
            int n = int.Parse(nq[0]);
            int q = int.Parse(nq[1]);
            init(n);
            for (int i = 0; i < q; i++)
            {
                string[] pab = Console.ReadLine().Split(' ');
                int p = int.Parse(pab[0]);
                int a = int.Parse(pab[1]);
                int b = int.Parse(pab[2]);
                if (p == 0)
                {
                    unite(a, b);
                }
                else
                {
                    if (same(a, b)) Console.WriteLine("Yes");
                    else Console.WriteLine("No");
                }
            }
        }

        static void init(int n)
        {
            par = new int[n];
            rank = new int[n];
            for (int i = 0; i < n; i++)
            {
                par[i] = i;
                rank[i] = 0;
            }
        }

        static int root(int x)
        {
            if (par[x] == x)
            {
                return x;
            }
            else
            {
                return par[x] = root(par[x]);
            }
        }

        static bool same(int x, int y)
        {
            return root(x) == root(y);
        }

        static void unite(int x, int y)
        {
            x = root(x);
            y = root(y);
            if (x == y) return;

            if (rank[x] < rank[y])
            {
                par[x] = y;
            }
            else
            {
                par[y] = x;
                if (rank[x] == rank[y]) rank[x]++;
            }
        }
    }
}

Submission Info

Submission Time
Task B - Union Find
User yu3mars
Language C# (Mono 3.2.1.0)
Score 100
Code Size 1909 Byte
Status AC
Exec Time 1758 ms
Memory 13772 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 1
AC × 19
Set Name Test Cases
Sample 00_sample_01.txt
All 00_sample_01.txt, subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_01_18.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 112 ms 8828 KB
subtask_01_01.txt AC 1000 ms 12940 KB
subtask_01_02.txt AC 110 ms 9648 KB
subtask_01_03.txt AC 1579 ms 12892 KB
subtask_01_04.txt AC 1599 ms 13708 KB
subtask_01_05.txt AC 197 ms 12936 KB
subtask_01_06.txt AC 216 ms 13696 KB
subtask_01_07.txt AC 1610 ms 12904 KB
subtask_01_08.txt AC 1758 ms 13664 KB
subtask_01_09.txt AC 111 ms 8880 KB
subtask_01_10.txt AC 114 ms 9652 KB
subtask_01_11.txt AC 1317 ms 12908 KB
subtask_01_12.txt AC 1632 ms 13728 KB
subtask_01_13.txt AC 1309 ms 12872 KB
subtask_01_14.txt AC 115 ms 9780 KB
subtask_01_15.txt AC 1600 ms 12916 KB
subtask_01_16.txt AC 1617 ms 13640 KB
subtask_01_17.txt AC 1098 ms 13736 KB
subtask_01_18.txt AC 1086 ms 13772 KB