짱아의 개발 기록장

백준 20040번. 사이클 게임(c++) / 유니온파인드 본문

Algorithm/Baekjoon

백준 20040번. 사이클 게임(c++) / 유니온파인드

jungahshin 2021. 4. 30. 23:45
반응형

너무 전형적인 유니온 파인드 문제이다.

바로 사이클이 형성되는 순간 exit(0)해서 프로그램을 빠져나오도록 구현했다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 사이클게임
#include <iostream>
using namespace std;
 
int n, m, a, b;
int connect[500001= {0, };
 
int find(int a){
    if(a==connect[a]){
        return a;
    }
    return connect[a] = find(connect[a]);
}
 
int main()
{
    cin>>n>>m;
    for(int i=0; i<n; i++){
        connect[i] = i;
    }
 
    for(int i=0; i<m; i++){
        cin>>a>>b;
        int from = find(a);
        int to = find(b);
        if(from!=to){
            connect[from] = to;
        }else{
            cout<<i+1<<"\n";
            exit(0);
        }
    }
 
    cout<<"0"<<"\n";
    return 0;
}
cs
반응형
Comments