하루 1문제 챌린지/Gold4

백준 20040번 사이클 게임(C++)

그린푸딩 2024. 2. 29. 22:46
728x90
반응형
#include<vector>
#include<iostream>

using namespace std;

vector<int>parent;

int find(int node){
    if(parent[node]<0)return node;
    
    return parent[node]=find(parent[node]);
}

bool unions(int x,int y){
    
    int xp=find(x);
    int yp=find(y);
    
    if(xp==yp)return false;
    
    if(parent[xp]<parent[yp]){
        parent[xp]+=parent[yp];
        parent[yp]=xp;
    }
    else{
        parent[yp]+=parent[xp];
        parent[xp]=yp;
    }
    return true; 
}

int main()
{
    int n,m; 
    
    cin>>n>>m;
    parent.assign(n,-1);
        
    int a,b;
    for(int i=0;i<m;i++){
        cin>>a>>b; 
        if(!unions(a,b)){
            cout<<i+1;
            return 0;
        }
        
    }
    
    cout<<0;
    return 0;
    
    
    return 0;
}
728x90
반응형

'하루 1문제 챌린지 > Gold4' 카테고리의 다른 글

백준 1806번 부분합(C++)  (0) 2024.03.02
백준 1976번 여행가자(C++)🚩  (1) 2024.02.28