VioletaBabel
11724번: 연결 요소의 개수 본문
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