본문 바로가기
category/백준 알고리즘 c++

백준 알고리즘 24479번 알고리즘 수업 - 깊이 우선 탐색 1

by 자운대고라니 2023. 2. 14.
반응형

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
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
 
using namespace std;
 
int N,M,R;
 
vector<int> v[100001];
int visited[100001= {0,};
int result[100001= {0,};
int cnt = 0;
 
void dfs(int x);
 
int main(void) {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    scanf("%d %d %d"&N, &M, &R);
    for(int i=1;i<=M;i++) {
        int u, d;
        scanf("%d %d"&u, &d);
        v[u].push_back(d);
        v[d].push_back(u);
    }
    for(int i=1;i<=N;i++) {
        sort(v[i].begin(), v[i].end());
    }
    dfs(R);
    for(int i=1;i<=N;i++) {
        printf("%d\n",result[i]);
    }
}
 
void dfs(int x) {
    if(visited[x] == 1return;
 
    visited[x] = 1;
    cnt++;
    result[x] = cnt;
        
    for(int i=0;i<v[x].size();i++) dfs(v[x][i]);
    
}
 
 
cs
반응형

댓글