https://www.acmicpc.net/problem/2606
I used BFS strategy.
*/
#include <iostream>
#include <queue>
using namespace std;
int num, num_matrix;
int con[101][101];
int flags[101];
queue<int> que;
int bfs(int start);
int main() {
cin >> num;
cin >> num_matrix;
for (int i = 0; i<num_matrix; i++) {
int x, y;
cin >> x;
cin >> y;
con[x][y] = 1;
con[y][x] = 1;
}
cout << bfs(1) << endl;
return 0;
}
int bfs(int start) {
int count = 0;
int now;
que.push(start);
flags[1] = 1;
while (!que.empty()) {
now = que.front();
que.pop();
for (int i = 1; i <= num; i++) {
if ((con[now][i] == 1) && (flags[i] != 1)) {
que.push(i);
flags[i] = 1;
count++;
}
}
}
return count;
}
댓글 없음:
댓글 쓰기