//https://www.acmicpc.net/problem/2606 #include <iostream> | |
#include <queue> | |
using namespace std; | |
int N, M, cnt; | |
bool network[101][101]; | |
bool visited[101]; | |
void input(){ | |
cin >> N >> M; | |
int a,b; | |
for(int i=0; i<M; i++){ | |
cin >> a >> b; | |
network[a][b]=network[b][a]=1; | |
} | |
} | |
void bfs(){ | |
queue<int> q; | |
q.push(1); | |
visited[1]=1; | |
while(!q.empty()){ | |
int now=q.front(); | |
q.pop(); | |
for(int i=2; i<=N; i++){ | |
if(network[now][i] && !visited[i]){ | |
q.push(i); | |
visited[i]=1; | |
cnt++; | |
} | |
} | |
} | |
} | |
int main(){ | |
input(); | |
bfs(); | |
cout << cnt; | |
} |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
180209_3052_나머지 (0) | 2018.02.09 |
---|---|
180208_1963_소수 경로 (0) | 2018.02.08 |
180206_5014_스타트링크 (0) | 2018.02.06 |
180205_2589_보물섬 (0) | 2018.02.05 |
180203_1010_다리 놓기 (0) | 2018.02.03 |