5.34m
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 5)
def find(x):
if parent[x] != x:
parent[x] = find(parent[x])
return parent[x]
def union(a, b):
a = find(a)
b = find(b)
if a < b:
parent[b] = a
else:
parent[a] = b
n, m = list(map(int, input().rstrip().split()))
parent = [i for i in range(n + 1)]
for i in range(m):
op, a, b = list(map(int, input().rstrip().split()))
if op == 0:
union(a, b)
if op == 1:
if find(a) == find(b): print('YES')
else: print('NO')
직전에 유니온 파인드 알고리즘을 공부해서...
애초에 유니온 파인드 연관 문제이기 때문에 엄청 조금 걸렸다!
과연 다음에 다시 풀어도 이만큼 걸릴까!? 제발!