Submission #4262698


Source Code Expand

class UnionFind():
    n=1
    par=[0]
    rnk=[0]
    def __init__(self,size):
        self.n=size
        self.par=[i for i in range(self.n)]
        self.rnk=[0 for i in range(self.n)]
    def find(self,vertex1):
        if self.par[vertex1]==vertex1:
            return vertex1
        else:
            self.par[vertex1]=self.find(self.par[vertex1])
            return self.par[vertex1]
    def unite(self,vertex1,vertex2):
        vertex1=self.find(vertex1)
        vertex2=self.find(vertex2)
        if vertex1==vertex2:
            return
        if (self.rnk[vertex1]<self.rnk[vertex2]):
            self.par[vertex1]=vertex2
        else:
            self.par[vertex2]=vertex1
            if(self.rnk[vertex1]==self.rnk[vertex2]):
                self.rnk[vertex1]+=1
    def same(self,vetrex1,vertex2):
        return self.find(vetrex1)==self.find(vertex2)

#N,Qを標準入力から受け取る
N,Q=map(int,input().split())
#UnionFindクラスの初期化,最初の頂点数はNとしている。
G=UnionFind(N)
for i in range(Q):
    #クエリの入力を受け取る
    p,a,b=map(int,input().split())
    #入力では1-indexedなため処理用に0-indexedに変更する
    if p==0:
        #連結クエリ
        #aとbを繋げる
        G.unite(a,b)
    else:
        #判定クエリ
        #G.same(a,b)は繋がっていたらTrue,繋がってないならFalseを返す
        if G.same(a,b):
            print("Yes")
        else:
            print("No")

Submission Info

Submission Time
Task B - Union Find
User shakayami
Language Python (3.4.3)
Score 100
Code Size 1532 Byte
Status AC
Exec Time 1765 ms
Memory 8616 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 1037 ms 3828 KB
subtask_01_02.txt AC 28 ms 7832 KB
subtask_01_03.txt AC 1755 ms 3828 KB
subtask_01_04.txt AC 1695 ms 8368 KB
subtask_01_05.txt AC 124 ms 3064 KB
subtask_01_06.txt AC 127 ms 7856 KB
subtask_01_07.txt AC 1698 ms 3700 KB
subtask_01_08.txt AC 1764 ms 8496 KB
subtask_01_09.txt AC 18 ms 3064 KB
subtask_01_10.txt AC 28 ms 7856 KB
subtask_01_11.txt AC 1735 ms 3700 KB
subtask_01_12.txt AC 1765 ms 8616 KB
subtask_01_13.txt AC 1353 ms 3572 KB
subtask_01_14.txt AC 31 ms 7856 KB
subtask_01_15.txt AC 1729 ms 3700 KB
subtask_01_16.txt AC 1703 ms 8496 KB
subtask_01_17.txt AC 1457 ms 7856 KB
subtask_01_18.txt AC 1449 ms 7856 KB