practivceAlgorithm/백준

[백준][Python] 20040 사이클게임

findTheValue 2021. 9. 15. 02:54

들어오는 두 점이 모두 동일한 집합에 속한 점이라면 사이클이 형성된다.

 

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)