#include <iostream>
using namespace std;
int computernum, computercnt;
int comconnect[100][100];
int visit[100];
void bfs(int a,int b) {
int com1 = a;
int com2 = b;
comconnect[com1][com2] = 0;
visit[com2] = 1;
for (int i = 0; i < 100; i++) {
if (comconnect[com2][i] != 0 && visit[i] ==0)
bfs(com2,i);
}
}
int main(void) {
cin >> computernum >> computercnt;
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
comconnect[i][j] = 0;
}
visit[i] = 0;
}
for (int i = 0; i < computercnt; i++) {
int x, y;
cin >> x >> y;
comconnect[x][y] = 1;
comconnect[y][x] = 1;
}
for (int i = 0; i < 100; i++) {
if (comconnect[1][i] != 0)
bfs(1,i);
}
int count = 0;
for (int i = 0; i < 100; i++) {
if (visit[i] == 1)
count++;
}
cout << count-1;
}
'백준 알고리즘 > 플로이드 와샬 알고리즘' 카테고리의 다른 글
합승 택시 요금 (0) | 2021.04.06 |
---|