들어오는 두 점이 모두 동일한 집합에 속한 점이라면 사이클이 형성된다.
import sys
input = sys.stdin.readline
def find(x):
if x == arr[x]:
return x
arr[x] = find(arr[x])
return arr[x]
def union(x, y):
x = find(x)
y = find(y)
if x < y:
arr[y] = x
else:
arr[x] = y
N, M = map(int, input().split())
arr = [i for i in range(N)]
for i in range(M):
a, b = map(int, input().split())
if find(a) == find(b):
print(i+1)
exit()
union(a, b)
print(0)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 17208 카우버거 알바생 (0) | 2021.09.15 |
---|---|
[백준][Python] 17069 17070 파이프 옮기기1, 2 (0) | 2021.09.15 |
[백준][Python] 2109 순회강연 (0) | 2021.09.14 |
[백준][Python] 18427 함께 블록 쌓기 (0) | 2021.09.14 |
[백준][Python] 17406 배열돌리기 4 (0) | 2021.09.14 |