VioletaBabel

11724번: 연결 요소의 개수 본문

백준/백준-C++
11724번: 연결 요소의 개수
Beabletoet 2018. 2. 5. 15:34
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
#include<cstdio>
#include<algorithm>
using namespace std;
void dfs(bool(*pnt)[1001], int x, int n);
int main()
{
    bool pnt[1001][1001];
    for (int i = 0; i < 1001++i)
        for (int j = 0; j < 1001++j)
            pnt[i][j] = 0;
    int n, m, ans = 0;
    scanf("%d %d"&n, &m);
    for (int i = 0, u, v; i < m; ++i)
    {
        scanf("%d %d"&u, &v);
        pnt[u-1][v-1= 1;
        pnt[v-1][u-1= 1;
    }
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            if (pnt[i][j] == 1)
            {
                dfs(pnt, i, n);
                ++ans;
            }
    for (int i = 0; i < n; ++i)
        ans = (pnt[1000][i] == false) ? ans + 1 : ans;
    printf("%d", ans);
}
void dfs(bool(*pnt)[1001], int x, int n)
{
    pnt[1000][x] = 1;
    for (int i = 0; i < n; ++i)
        pnt[i][x] = 0;
    for (int i = 0; i < n; ++i)
        if (pnt[x][i])
            dfs(pnt, i, n);
}
cs


'백준 > 백준-C++' 카테고리의 다른 글

1032번: 명령 프롬프트  (0) 2018.02.05
1002번: 터렛  (0) 2018.02.05
10026번: 적록색약  (0) 2018.02.05
11659번: 구간 합 구하기  (0) 2018.02.05
2605번: 줄 세우기  (0) 2018.02.05
Comments