2018년 3월 30일 금요일

[C++] Virus (바이러스) (BAEKJOON 2606)

/*

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;
}

댓글 없음:

댓글 쓰기