Submission #3523254


Source Code Expand

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#

"""
Union Find
ATC001 B
"""

# using List
# n = upper bound of indices
n, q = map(int, input().split())

# In case where there are non-existent elemets
# parList = [-2]*n
# rankList = [1]*n

parList = [-1]*n
rankList = [1]*n


# In cases where there are non-existent elemets
# def addElement(i):
#    parList[i] = -1
#    rankList[i] = 1


def findRoot(i):
    par = parList[i]
    if par == -1:
        return i
    else:
        parpar = parList[par]
        while parpar != -1:
            parList[i] = parpar
            parpar = parList[parpar]
        return parList[i]


def isConnected(i1, i2):
    return findRoot(i1) == findRoot(i2)


def union(i1, i2):
    root1 = findRoot(i1)
    root2 = findRoot(i2)
    if not root1 == root2:
        if rankList[root1] <= rankList[root2]:
            parList[root1] = root2
        else:
            parList[root2] = root1
        if rankList[root1] == rankList[root2]:
            rankList[root2] += 1


for i in range(q):
    p, a, b = map(int, input().split())
    if p == 0:
        union(a, b)
    if p == 1:
        if isConnected(a, b):
            print('Yes')
        else:
            print('No')

Submission Info

Submission Time
Task B - Union Find
User kantohm11
Language Python (3.4.3)
Score 100
Code Size 1288 Byte
Status AC
Exec Time 1758 ms
Memory 5236 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 17 ms 3064 KB
subtask_01_01.txt AC 1054 ms 3572 KB
subtask_01_02.txt AC 20 ms 4596 KB
subtask_01_03.txt AC 1624 ms 3828 KB
subtask_01_04.txt AC 1758 ms 5236 KB
subtask_01_05.txt AC 122 ms 3064 KB
subtask_01_06.txt AC 117 ms 4724 KB
subtask_01_07.txt AC 1683 ms 3700 KB
subtask_01_08.txt AC 1681 ms 5236 KB
subtask_01_09.txt AC 18 ms 3064 KB
subtask_01_10.txt AC 20 ms 4596 KB
subtask_01_11.txt AC 1650 ms 3700 KB
subtask_01_12.txt AC 1685 ms 5236 KB
subtask_01_13.txt AC 1318 ms 3572 KB
subtask_01_14.txt AC 24 ms 4596 KB
subtask_01_15.txt AC 1646 ms 3700 KB
subtask_01_16.txt AC 1668 ms 5236 KB
subtask_01_17.txt AC 1291 ms 4980 KB
subtask_01_18.txt AC 1296 ms 4980 KB