#include<iostream>
#include<queue>
using namespace std;
int N, M, V;
int map[1001][1001];
int c[1001];
void dfs(int node) {
cout << node << " ";
for (int i = 1; i <= N; i++) {
if (map[node][i] == 1 && c[i] != 1) {
c[i] = 1;
dfs(i);
}
}
}
int main() {
cin >> N >> M >> V;
int x=0;
int y=0;
for (int i = 0; i < M; i++) {
cin >> x >> y;
map[x][y] = map[y][x] = 1;
}
//dfs
c[V] = 1;
dfs(V);
cout << endl;
//bfs
queue<int> q;
int v;
q.push(V);
c[V] = 2;
while (!q.empty()) {
v = q.front();
q.pop();
cout << v << " ";
for (int i = 1; i <= N; i++) {
if (map[v][i] == 1 && c[i] != 2) {
c[i] = 2;
q.push(i);
}
}
}
return 0;
}
'Programming > BOJ' 카테고리의 다른 글
[백준/C++] 백준 1759번 : 암호만들기 (0) | 2020.07.28 |
---|---|
[백준/C++] 백준 1931번: 회의실배정 (0) | 2020.07.20 |
[백준/C++] 백준 1697번: 숨바꼭질 (0) | 2020.07.16 |
[백준/C++] 백준 1652번: 누울 자리를 찾아라 (0) | 2020.07.15 |
[백준/C++] 1205: 등수구하기 (0) | 2020.07.13 |